我正在使用mqtt.js和mosca。我想知道有多少客户订阅了一个主题。我怎样才能实现这一目标?
答案 0 :(得分:1)
在MQTT协议级别,您无法执行此操作,发布客户端无法知道某个主题是否有任何订阅者。
虽然您可能可以使用mosca挂钩和回调实现某些功能并找到在$sys
主题空间下发布信息的方法,但您仍然需要计算明确订阅该主题的客户端但也匹配通配符订阅。
这个问题很棘手,因为它们只是在发布消息时得到匹配,所以最多只能计算在发布时传递消息的客户端数量。然后,这将忽略任何具有QOS 1/2订阅的客户端,这些客户端在发布时处于脱机状态,并且消息将排队等待。
总而言之,您需要考虑为什么要这个号码,因为它通常违背了发布/订阅消息的概念,以便发布者关注是否有任何订阅者。