有多少客户端使用MQTT订阅了主题

时间:2018-04-11 07:18:44

标签: javascript mqtt mosca

我正在使用mqtt.js和mosca。我想知道有多少客户订阅了一个主题。我怎样才能实现这一目标?

1 个答案:

答案 0 :(得分:1)

在MQTT协议级别,您无法执行此操作,发布客户端无法知道某个主题是否有任何订阅者。

虽然您可能可以使用mosca挂钩和回调实现某些功能并找到在$sys主题空间下发布信息的方法,但您仍然需要计算明确订阅该主题的客户端但也匹配通配符订阅。

这个问题很棘手,因为它们只是在发布消息时得到匹配,所以最多只能计算在发布时传递消息的客户端数量。然后,这将忽略任何具有QOS 1/2订阅的客户端,这些客户端在发布时处于脱机状态,并且消息将排队等待。

总而言之,您需要考虑为什么要这个号码,因为它通常违背了发布/订阅消息的概念,以便发布者关注是否有任何订阅者。