2016-08-12 55 views
0

今天我发表在这个主题 MQTT know if a client is subscribedMQTT知道,如果一个客户端订阅(续)

我想尝试的东西,但我想知道是否是可行的,可我复杂的事情,所以,如果你有其他建议,请随时

让我们假设我们有话题温度/订阅

首先

客户一肃bscribes到订阅(或者换句话说温度/订阅) 如果他不接收有效载荷(一个保留消息)

然后

客户端A发布到订阅用的有效载荷或“在线”作为保留消息

并订阅该温度话题

现在,客户端B

再次,订阅订阅,如果他收到的有效载荷=有人已订阅(客户端A) 所以,他不能同意温度话题

我仍然需要添加LWT消息,但首先我想从简单的事情开始。

这样做是否可行?所以我用这种方式我可以看到是否有人被订阅或不是主题

回答

0

正如我们上次讨论的那样,这将起作用,但它在检查temperature/subscription上的消息并发布消息到它要求认购。

此外,您还需要使用客户端标识作为标记,因为保留的消息将在代理重新启动后存活下来,这将断开所有客户端,因此客户端A在代理重新启动后仍不会知道它仍然保留“锁定” 。

LWT只是存在客户端A崩溃,然后它会在发送消息之前等待连接的TTL过期,如果客户端A干净地断开连接,则需要明确地清除该主题。

总之,这是一个非常糟糕的主意,试图改造MQTT不适合的概念。

+0

理解..再次感谢你hardillb,事情是我需要找到一些方法来做到这一点,或至少限制了一个频道的订阅,只有一个可以订阅:/ – andreahg

+0

插件MQTT消息登录? – andreahg