Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MQTT: Message queuing at server side

Tags:

mqtt

I am using mqtt to implement one of the kind of email notification system. I am also planning to use it for trigger notifications inside the webapp. I am confused between whether MQTT stores data at server side itself when we throw on MQTT url with publisher id in JSON format? The reason i am asking this is because in my case, the MQTT stores only the last thrown data, if i send another one then the previous one get disappeared. I want to know is it present at MQTT side from birth(as MQ stands for Message queuing) & i haven't used or need to be implemented at server/consumer side?

like image 924
Shaggie Avatar asked Dec 25 '22 19:12

Shaggie


1 Answers

There is a common error on Internet ... MQTT stands for MQ Telemetry Transport and not Message Queueing Telemetry Transport. It was created by IBM (with Eurotech) and it was part of the MQ products family in IBM. MQTT hasn't queue. The broker receives the message on a topic and forwards it on all subscribers on that topic. There are two main variations on this behaviour:

  • If the publisher send a message with the "retain" flag active, the broker store this message (only this). If a client subscribes to that topic, the broker immediately sends this last storage message. It's so called "last known message"
  • If the subscriber connects to the broker with "clean session" to false, the broker saves all subscriptions and all messages only if the client is offline. It's like a queue but not a very queue. With "clean session" false, if the client goes offline but some publishers send messages to topic it is subscribed, the broker store these messages. When the client returns online, it will receive all messages lost.

Paolo.

like image 92
ppatierno Avatar answered Feb 27 '23 16:02

ppatierno