You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If a subscriber disconnected from a MQTT-SN Broker, it should receive all messages sent during the disconnection period once it reconnects.
According to the specification MQTT-SN_spec_v1.2.pdf, page 22:
6.3 Clean session
With MQTT, when a client disconnects, its subscriptions are not deleted. They are persistent and valid for new
connections, until either they are explicitly un-subscribed by the client, or the client establishes a new connection
with the “clean session” flag set.
In MQTT-SN the meaning of a “clean session” is extended to the Will feature, i.e. not only the subscriptions
are persistent, but also the Will topic and the Will message.
Expected behavior
If a subscriber disconnected from a MQTT-SN Broker, it should receive all messages sent during the disconnection period once it reconnects.
According to the specification MQTT-SN_spec_v1.2.pdf, page 22:
6.3 Clean session
With MQTT, when a client disconnects, its subscriptions are not deleted. They are persistent and valid for new
connections, until either they are explicitly un-subscribed by the client, or the client establishes a new connection
with the “clean session” flag set.
In MQTT-SN the meaning of a “clean session” is extended to the Will feature, i.e. not only the subscriptions
are persistent, but also the Will topic and the Will message.
Actual behavior
MQTT-SN subscriber doesn't receive any messages.
To Reproduce
Step 0: Run HiveMQ Edge on a Docker Container
docker pull hivemq/hivemq-edge
docker run --name hivemq-edge -d -p 1883:1883 -p 8080:8080 -p 2442:2442/udp hivemq/hivemq-edge
Step 1: Subscribe to an MQTT topic
mosquitto_sub -h 127.0.0.1 -p 1883 -c -i mqtt-client-sub -t mqttsn/sample/normal -q 1
clean session disabled, QOS=1 and ClientID fixed
Step 2: Subscribe to an MQTT-SN normal topic
mqtt-sn-sub -h 127.0.0.1 -p 2442 -c -q 1 -i mqttsn-client-sub -t mqttsn/sample/normal
clean session disabled, QOS=1 and ClientID fixed
Step 3: send a message on MQTT topic
mosquitto_pub -h 127.0.0.1 -p 1883 -t mqttsn/sample/normal -m "hello 1" -q 1
Step 4: send a message on MQTT topic
mosquitto_pub -h 127.0.0.1 -p 1883 -t mqttsn/sample/normal -m "hello 2" -q 1
Step 5: Stop MQTT subscriber
Stop mosquitto_sub
Step 6: Stop MQTT-SN Subscriber
Stop mqtt-sn-sub
Step 7: send a message on MQTT topic
mosquitto_pub -h 127.0.0.1 -p 1883 -t mqttsn/sample/normal -m "hello 3" -q 1
Step 8: send a message on MQTT topic
mosquitto_pub -h 127.0.0.1 -p 1883 -t mqttsn/sample/normal -m "hello 4" -q 1
Step 9: Subscribe again to an MQTT topic
mosquitto_sub -h 127.0.0.1 -p 1883 -c -i mqtt-client-sub -t mqttsn/sample/normal -q 1
Receive correctly messages "hello 3" and "hello 4"
Step 10: Subscribe again to an MQTT-SN normal topic (ERROR)
mqtt-sn-sub -h 127.0.0.1 -p 2442 -c -q 1 -i mqttsn-client-sub -t mqttsn/sample/normal
It doesn't receive any messages.
No error log on container image.
Reproducer code
n/a
Details
The text was updated successfully, but these errors were encountered: