Сколько клиентов подписалось на тему, используя MQTT

Я использую mqtt.js и mosca. Я хотел бы знать, сколько клиентов подписалось на тему. Как я могу достичь этой цели?

1 ответ

На уровне протокола MQTT вы не можете сделать это, у клиента публикации нет возможности узнать, есть ли подписчики на данную тему.

В то время как вы, вероятно, могли бы реализовать что-то с помощью mosca hooks и обратных вызовов и найти способ опубликовать информацию под $sys Пространство тем, вам все равно нужно будет подсчитывать не только клиентов, которые явно подписались на тему, но и совпадающих подстановочных подписок.

Это сложно, потому что они сопоставляются только в момент публикации сообщения, поэтому в лучшем случае вы можете подсчитать только количество клиентов, которым сообщение было доставлено в момент публикации. Затем игнорируются все клиенты с подписками QOS 1/2, которые на момент публикации находились в автономном режиме, и сообщение будет помещено в очередь.

В общем, вам нужно подумать, зачем вам этот номер, поскольку он обычно идет вразрез с концепцией публикации / суб-обмена сообщениями, чтобы издатель заботился о том, есть ли подписчики.

Другие вопросы по тегам