0

我们如何在一个结构中将不同主题的消息从发布者发送到订阅者,以及如何在订阅者中检索主题。

  • C/C++ 代码示例
4

1 回答 1

0

问: “我们如何在一个结构中将不同主题的消息从发布者发送到订阅者......?”

-sidepub可以只发送,如下所示:

#include <nanomsg/nn.h>
#include <nanomsg/pubsub.h>

...
int pub = nn_socket (AF_SP, NN_PUB);
assert (pub >= 0);
...

int nbytes;
char *addr = "inproc://example";

nn_bind(pub, addr);
...

nbytes = nn_send (pub, "a_Topic_#1abcdefghijklmnopqr", 28);
assert(nbytes == 28);

nbytes = nn_send (pub, "a_Topic_#2abcdefghijklmnopqr", 28);
assert(nbytes == 28);
...

nn_freemsg (buf);
...

问: “......以及如何在订阅者中检索主题?”

基本上使用这个模型原理,sub-side 必须首先订阅:

#include <nanomsg/nn.h>
#include <nanomsg/pubsub.h>

...
int sub = nn_socket (AF_SP, NN_SUB);
assert (sub >= 0);
...

int nbytes;
void *buf = NULL;
char *addr = "inproc://example";

nn_connect(sub, addr);
...

nn_setsockopt (sub, NN_SUB, NN_SUB_SUBSCRIBE, "a_Topic_#1", 10);
nn_setsockopt (sub, NN_SUB, NN_SUB_SUBSCRIBE, "a_Topic_#2", 10);
...

nbytes = nn_recv (sub, &buf, NN_MSG, 0);
assert (nbytes == 28);

nn_freemsg (buf);
...
于 2022-02-14T15:54:04.467 回答