ZeroMQ:link 到消息关系
ZeroMQ: link to message relation
我正在使用 ZMQ 的 Pub-Sub-Pattern。而且我知道可以将订阅者连接到任意数量的发布者,以便通过 ZMQ recv
-function 通过一个套接字接收所有发布者消息。但是,我还需要有关“link”(例如 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?
}
}
}
无法从 zmq 框架查询该信息。如果地址太长,另一种选择是使用包含 IP 地址或 ID 的“部分”发布多部分消息。
我正在使用 ZMQ 的 Pub-Sub-Pattern。而且我知道可以将订阅者连接到任意数量的发布者,以便通过 ZMQ recv
-function 通过一个套接字接收所有发布者消息。但是,我还需要有关“link”(例如 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?
}
}
}
无法从 zmq 框架查询该信息。如果地址太长,另一种选择是使用包含 IP 地址或 ID 的“部分”发布多部分消息。