Сколько клиентов подписалось на тему, используя MQTT
Я использую mqtt.js и mosca. Я хотел бы знать, сколько клиентов подписалось на тему. Как я могу достичь этой цели?
1 ответ
На уровне протокола MQTT вы не можете сделать это, у клиента публикации нет возможности узнать, есть ли подписчики на данную тему.
В то время как вы, вероятно, могли бы реализовать что-то с помощью mosca hooks и обратных вызовов и найти способ опубликовать информацию под $sys
Пространство тем, вам все равно нужно будет подсчитывать не только клиентов, которые явно подписались на тему, но и совпадающих подстановочных подписок.
Это сложно, потому что они сопоставляются только в момент публикации сообщения, поэтому в лучшем случае вы можете подсчитать только количество клиентов, которым сообщение было доставлено в момент публикации. Затем игнорируются все клиенты с подписками QOS 1/2, которые на момент публикации находились в автономном режиме, и сообщение будет помещено в очередь.
В общем, вам нужно подумать, зачем вам этот номер, поскольку он обычно идет вразрез с концепцией публикации / суб-обмена сообщениями, чтобы издатель заботился о том, есть ли подписчики.