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