Как подписаться и опубликовать sh одновременно с помощью инструментов командной строки mosquitto? - PullRequest
0 голосов
/ 03 марта 2020

Я хочу реализовать запрос-ответ с помощью MQTT (3.1.1). Я думаю, это можно сделать с помощью некоторой языковой привязки. Но как это сделать с помощью утилит командной строки mosquitto_pub и mosquitto_sub?

Основная проблема заключается в том, что сначала мне нужно подписаться, затем опубликовать sh, а затем дождаться входящего пакета. Я попробовал это, используя 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

Также оно подключается дважды, что не идеально .

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

mosquitto_rr

mosquitto_rr - это клиент MQTT версии 5 / 3.1.1, который можно использовать для публикации sh сообщения запроса и ожидания ответа. При использовании MQTT v5, который используется по умолчанию, mosquitto_rr будет использовать функцию запроса-ответа.

(от man mosquitto_rr)

0 голосов
/ 05 марта 2020

Короткий ответ на этот вопрос - нет.

Если вы хотите делать подобные вещи, используйте подходящую клиентскую библиотеку с чем-то вроде python.

...