watson-iot 上的持久 MQTT 会话 (python

Durable MQTT session on watson-iot (python

如果订阅者应用程序断开一段时间(例如崩溃),是否可以获取所有丢失的事件?

我希望将 clean-session 设置为 true 来获得此行为,但它不起作用。这是我的代码:

import ibmiotf.application

options = {
    "org": "org",
    "id": "some-id",
    "auth-method": "apikey",
    "auth-key": "key",
    "auth-token": "token",
    "clean-session": False
}
client = ibmiotf.application.Client(options)
client.connect()
client.deviceEventCallback = eventCallback
client.subscribeToDeviceEvents(deviceType="deviceType")

谢谢!

您还需要发布 QoS1 或 QoS2 的消息,并设置

client.subscribeToDeviceEvents(deviceType="deviceType",qos=1)

基本上,您需要做的是:

clean_session =假,

发布和订阅 qos(服务质量)= 1

这样当订阅者重新连接时,您发布的消息将被接收。

可以在此处找到有关 watson-iot 消息传递的所有详细信息。 https://console.bluemix.net/docs/services/IoT/reference/mqtt/index.html#qos-levels