如何使用 mosquitto 命令行工具同时订阅和发布?
How to subscribe AND publish at the same time with mosquitto command line tools?
我想用 MQTT (3.1.1) 实现请求-响应。
我猜可以使用某种语言绑定来完成。
但是如何使用 mosquitto_pub 和 mosquitto_sub 命令行实用程序来实现呢?
主要问题是,我需要先订阅,然后发布,然后等待传入的数据包。
我尝试使用 zsh(或 bash)进行此操作,但没有成功,正如您所看到的,有时消息会到达,有时却不会。
$ mosquitto_sub -t topic -C 1 & mosquitto_pub -t topic -m message ; fg
[1] 20321
[1] + running mosquitto_sub -t topic -C 1
^C
$ mosquitto_sub -t topic -C 1 & mosquitto_pub -t topic -m message ; fg
[1] 20341
[1] + running mosquitto_sub -t topic -C 1
message
它确实连接了两次,这并不理想。
对此的简短回答是,你没有。
如果你想做这种事情,请使用像 python.
这样的合适的客户端库
mosquitto_rr
mosquitto_rr是一个MQTT version 5/3.1.1客户端,可以用来发布请求消息和等待响应。使用默认的 MQTT v5 时,mosquitto_rr 将使用请求-响应功能。
(来自人 mosquitto_rr)
我想用 MQTT (3.1.1) 实现请求-响应。 我猜可以使用某种语言绑定来完成。 但是如何使用 mosquitto_pub 和 mosquitto_sub 命令行实用程序来实现呢?
主要问题是,我需要先订阅,然后发布,然后等待传入的数据包。 我尝试使用 zsh(或 bash)进行此操作,但没有成功,正如您所看到的,有时消息会到达,有时却不会。
$ mosquitto_sub -t topic -C 1 & mosquitto_pub -t topic -m message ; fg
[1] 20321
[1] + running mosquitto_sub -t topic -C 1
^C
$ mosquitto_sub -t topic -C 1 & mosquitto_pub -t topic -m message ; fg
[1] 20341
[1] + running mosquitto_sub -t topic -C 1
message
它确实连接了两次,这并不理想。
对此的简短回答是,你没有。
如果你想做这种事情,请使用像 python.
这样的合适的客户端库mosquitto_rr
mosquitto_rr是一个MQTT version 5/3.1.1客户端,可以用来发布请求消息和等待响应。使用默认的 MQTT v5 时,mosquitto_rr 将使用请求-响应功能。
(来自人 mosquitto_rr)