MQTT: различия между версиями

346 байт добавлено ,  7 лет назад
Нет описания правки
Строка 124: Строка 124:
/devices/wb-w1/controls/28-0115a48fcfff 22.75
/devices/wb-w1/controls/28-0115a48fcfff 22.75
</syntaxhighlight>
</syntaxhighlight>
Подписаться можно не только на один топик, но и на группу по wildcard:
===Метасимволы===
 
Подписаться можно не только на один топик, но и на группу топиков по метасиволу. В MQTT применяется два метасимвола: '''#''' и '''+'''. Метасимвол ''#''  означает любое количество уровней вложенных топиков. Выполним команду
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
root@wirenboard:~# mosquitto_sub -t '/devices/wb-w1/#' -v
root@wirenboard:~# mosquitto_sub -t '/devices/wb-w1/#' -v
Строка 132: Строка 134:
/devices/wb-w1/controls/28-0115a48fcfff 22.75
/devices/wb-w1/controls/28-0115a48fcfff 22.75
</syntaxhighlight>
</syntaxhighlight>
, где ''#'' - означает любое количество вложенных топиков. Соответственно, вывелись не только значения с "контрола" устройства, но и топики с метаданными - название драйвера устройства и тип "контрола" - ''temperature''.
В результат были выведены вывелись не только значения с "контрола" устройства, но и топики с метаданными - название драйвера устройства и тип "контрола" - ''temperature''.
Существует так же метасимвол ''+'', который обозначает один уровень, а не произвольное количество,как ''#'':
Существует так же метасимвол ''+'', который обозначает один уровень, а не произвольное количество,как ''#'':
 
<syntaxhighlight lang="bash">
mosquitto_sub -v -t "/config/widgets/+/name"  
mosquitto_sub -v -t "/config/widgets/+/name"  
</syntaxhighlight>
В этом случае мы получим имена всех виджетов.




5813

правок