【发布时间】:2021-04-19 21:50:25
【问题描述】:
我正在使用 ZMQ 的 Pub-Sub-Pattern。而且我知道可以将订阅者连接到任意数量的发布者,以便使用 ZMQ recv 函数通过一个套接字接收所有发布者消息。但是,我还需要通过哪个“链接”(例如 ipc:///tmp/link.ipc)收到当前收到的消息的信息。
有没有办法从 ZMQ 消息中查询到这些信息?
为了帮助理解我的意思,这里有一个小例子:
#include <zmq.hpp>
int main()
{
zmq::context_t ctx(1);
zmq::socket_t skt(ctx, ZMQ_SUB);
skt.setsockopt(ZMQ_SUBSCRIBE, nullptr, 0);
skt.connect("ipc:///tmp/link0.ipc");
skt.connect("ipc:///tmp/link1.ipc");
skt.connect("ipc:///tmp/link1.ipc");
zmq::message_t msg;
while (1)
{
if (skt.recv(msg))
{
// from which link is the message?
}
}
}
【问题讨论】: