我是 zeromq 的新手。最近我对 zeromq 的 pub/sub 进行了一些测试,但我不知道如何在 ZeroMQ 中使用 XPUB 和 XSUB 实现带有代理的 Pub-Sub 网络。希望您的帮助,非常感谢。
问问题
2726 次
2 回答
2
通过示例学习基础知识。对于代理,只需使用它,它来自msgqueue.cpp
int main (int argc, char *argv[])
{
zmq::context_t context(1);
zmq::socket_t frontend (context, ZMQ_XSUB);
frontend.bind("tcp://*:5559");
zmq::socket_t backend (context, ZMQ_XPUB);
zmq_bind (backend, "tcp://*:5560");
zmq_proxy (frontend, backend, NULL);
return 0;
}
于 2013-09-02T14:12:35.947 回答
-1
代理:
int main (int argc, char *argv[])
{
zmq::context_t context(1);
zmq::socket_t frontend (context, ZMQ_XSUB);
....//set hwm
frontend.bind("tcp://*:5559");
zmq::socket_t backend (context, ZMQ_XPUB);
....//set hwm
zmq_bind (backend, "tcp://*:5560");
zmq_proxy (frontend, backend, NULL);
return 0;
}
我丢失消息的原因是我应该在绑定或连接之前调用 setsockopt。
有关 setsockopt 的信息,请参阅 0MQ API 文档:
注意:除 ZMQ_SUBSCRIBE、ZMQ_UNSUBSCRIBE 和 ZMQ_LINGER 之外的所有选项仅对后续的套接字绑定/连接生效。
于 2013-09-13T07:07:07.733 回答