客户如何使用zeromq订阅和收听回复?也就是说,在客户端,我想运行一个只接收消息并有选择地发送请求的循环,而在服务器端我想发布大部分时间,但有时也会收到请求.看起来我必须有两个不同的插座 - 每个插槽用于一种通信模式.是否有可能避免这种情况,并在服务器端从zeromq回调线程上的套接字接收"请求通知",同时将消息推送到我自己的线程中的套接字?
bjl*_*aub 15
我对ZeroMQ非常陌生,所以我不确定你想要的是否是最佳实践.但是,使用多个套接字的解决方案非常简单zmq_poll.
基本的想法是同时拥有客户端和服务器:
zmq_poll在无限循环中使用循环在两个套接字之间发送和接收使用zmq_poll这种方式与多个插座是好的,因为它避免了完全线程.0MQ指南在这里有一个很好的例子.请注意,在该示例中,它们使用-1in 的超时zmq_poll,这导致它阻塞,直到在任何多路复用套接字上发生至少一个事件,但是如果您的循环需要执行,则使用x毫秒的超时或者某些事情是很常见的其他一些工作也是如此.