【发布时间】:2017-03-30 04:41:10
【问题描述】:
我正在尝试制作一个简单的代理(即星形拓扑),它允许任何DEALER 节点与也连接到代理的任何其他DEALER 节点通信。这是当前的设置:
// Simple broker
#include <string>
#include <zmq.hpp>
#include <zhelpers.hpp>
using namespace std;
int main()
{
zmq::context_t context(1);
zmq::socket_t router(context, ZMQ_ROUTER);
router.bind("ipc://router.ipc");
while (true)
{
string from_address = s_recv(router);
string to_address = s_recv(router);
string message = s_recv(router);
s_sendmore(router, to_address);
s_sendmore(router, from_address);
s_send(router, message);
}
return 0;
}
这行得通,但是,我觉得我只是编造了这个,当我只是交换前两帧的位置并发送它时,将传入的帧(尤其是数据)复制到字符串中效率很低马上回来。
我的问题是 - 有没有一种标准的方式来做我想做的事情?
似乎每一个谷歌查询都会让我回到整体指南/圣经而不是实现示例......
【问题讨论】: