Mqtt中的消息Android
问题描述:
我有一个发件人在主题上发送消息的场景。但有一个以前从未连接的客户端,连接和订阅相同的主题。他如何能够接收到新连接的客户端以前出现在该主题上的所有消息。Mqtt中的消息Android
我用cleanSession =假没有任何反应
我用留存消息=真。然后只收到最后一条消息。
答
简短的答案是你不能。
代理只会为已有会话的客户端排队消息(已使用cleanSession = false登录至少一次)。
保留消息只保留发送到该主题的最后一条消息。
如果你想历史的消息像你描述的,那么你需要将它们存储在数据库中,并通过一些其他的机制(例如HTTP)
答
该券商存储请求他们的最后保留的消息,并为相应的QoS话题。订阅主题模式的每个客户端都会在订阅后立即收到消息,该主题模式与保留消息的主题相匹配。
对于每个主题,只有一个保留消息将由代理存储。因此,您无法获取所有保留的消息