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

libmosquitto は、迅速なプロジェクトに橋渡しされる目的の C ライブラリです。そのため、cleanSession を false に設定した後も、永続的なサブスクリプションを設定したり、オフライン時にメッセージを受信したりできません。

4

1 に答える 1

0

cleanSession = false を設定しても、うまくいきません。再接続後にメッセージを受信したい場合は、QOS が必要です。

デフォルトでは、メッセージとサブスクライブの qos は 0 であり、メッセージがオフライン クライアントに配信されることは保証されません。

2 つのことを行う必要があります:
1. トピックをサブスクライブするときは、QOS 1 または 2 でサブスクライブします。
2. オフライン クライアントに配信するメッセージをパブリッシュするときは、qos 1 または 2 で送信します。

Nd も接続に同じクライアント ID を使用します。

于 2016-08-20T01:33:52.067 に答える