Mqtt Android中的消息

时间:2016-08-22 13:07:14

标签: android mqtt

我有一个发件人在主题上发送消息的场景。但是有一个客户端以前从未连接过,连接并订阅同一个主题。如何为新连接的客户端接收先前在该主题上出现的所有消息。

我用过cleanSession = false没有任何反应

我使用了Retained message = true。然后只收到最后一条消息。

2 个答案:

答案 0 :(得分:0)

简短的回答是你不能。

代理只会为已经拥有会话的客户端排队消息(已使用cleanSession = false登录至少一次)。

保留消息仅保留发送到该主题的最后一条消息。

如果您需要像您描述的历史消息,那么您需要将它们存储在数据库中并通过其他机制(例如http)请求它们

答案 1 :(得分:0)

代理存储最后保留的消息以及该主题的相应QoS。订阅主题模式的每个客户端(与保留消息的主题相匹配)将在订阅后立即收到消息。

对于每个主题,经纪商只会存储一条保留的消息。因此,您无法获取所有保留的消息