如何使用`nncat`

时间:2019-07-03 12:37:52

标签: nanomsg

从技术上讲,不是nanomsg-,而是nng问题。

我希望有多个仅偶尔运行(临时)的订阅者和发布者。

nngcat [1]的联机帮助页中,我找到了pubsub的以下示例:

$ addr=ipc:///grandpa_clock
$ nngcat --pub --listen=${addr} --data "cuckoo" --interval 3600 &
$ nngcat --sub --dial=${addr} --quoted &
"cuckoo"

似乎在起作用。 :)

现在,我的期望是,如果我放弃--interval,它应该发送的正是一条消息,该消息应该由订户接收。但是什么都没有出现。

根据我的理解,订阅服务器应该是使用listen(套接字绑定的别名)的人,而发布服务器应该是使用dial(套接字连接的别名)的人-作为订阅者是连续运行的过程,而发布者可能会重复运行,每次运行都会发出一条消息。

如果将命令更改为

$ addr=ipc:///tmp/x
$ nngcat --sub --listen=${addr} -A
$ nngcat --pub --dial=${addr} --data "cuckoo"

它似乎按预期工作,但是当我尝试连接第二个 订阅者,我收到以下错误消息:

Unable to listen on ipc:///tmp/x: Address in use

所以我想我的问题是:如何在每次运行(临时)的基础上与发布者发送消息的同时连接多个订户?

此外,我想问一下是否可以让nncat从STDIN读取数据,例如:

date | nncat --pub --dial=${addr} --file -

[1] https://nanomsg.github.io/nng/man/v1.1.0/nngcat.1

0 个答案:

没有答案