2
client = MosquittoClient(clientId: "client1")
client?.delegate = self
client?.port = 1883
client?.host = "someIPAddress"
client!.cleanSession = false
client?.connect()

libmosquitto 是一个客观的 c 库,它被桥接到一个 swift 项目中。因此,将 cleanSession 设置为 false 后,我仍然无法设置持久订阅或在离线时接收消息。

4

1 回答 1

0

设置 cleanSession = false 将无法完成您的工作..如果您想在重新连接后收到一条消息,它将需要 QOS..

默认情况下,消息和订阅的 qos 为 0,这将不能保证消息将被传递到离线客户端。

您需要做两件事:
1. 当您订阅主题时,使用 QOS 1 或 2 订阅它。
2. 当您发布要传递给离线客户端的消息时,使用 qos 1 或 2 发送。

Nd 也使用相同的客户端 ID 进行连接。如果您希望在发布消息时使用 retain=true 的新客户端也接收到消息

于 2016-08-20T01:33:52.067 回答