Is it possible to get all missing events if subscriber application is disconnected for a while (e.g. crash)?
I was hoping that setting clean-session to true to get this behavior, but it doesn't work. Here is my code:
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")
Thanks!
You also need to publish the messages with QoS1 or QoS2 and also set
client.subscribeToDeviceEvents(deviceType="deviceType",qos=1)
Basically, what you need to do is:
clean_session =False,
publish and subscribe qos (quality of service) = 1
This way the messages that you publish will be received when subscriber will reconnect.
All the details on watson-iot messaging can be found here. https://console.bluemix.net/docs/services/IoT/reference/mqtt/index.html#qos-levels