MQTT是一个协议的名称。
其主要的应用场景是IOT物联网下.
MQ即消息队列Message Queue,整个工作方式是基于订阅和发布。
Qos:
针对物联网,MQTT做了一些设定,eg:Qos。
Qos有3个值:0,1,2
Qos值 | 说明 |
0 | 发送端只发送一次,不管服务端有没有收到 |
1 | 发送端至少发送一次,服务端一定能收到,但是服务端不一定收到1次,可能服务端收到2次或3次。。。 |
2 | 保证服务端收到且仅收到1次 |
Qos越大,保证的质量越高.
大多数场景下,在采集端会设置Qos为0,因为采集的数据是每秒1次,即使某1秒丢失了,我们也不在意丢失的数据。
关键性的数据,一般设置1或者2.
Qos越小的时候,网络带宽占用的越低,能耗也越低。
mqttd的经典实现:EMQ
然后打开:http://localhost:18083/登录:
订阅发布方式:3种
1.使用node-red:
添加一个brocker节点:
订阅和发布都一个主题。
弄好之后点击部署后是这样:
回到emqx可以看到已经有一个连接了:
再回到node-red进行发送消息:
可以看到发送消息并订阅成功了。
2.使用emqx的网页
node-red那边发布一下:
收到了node-red那边发布的消息,应为上面我们已经做过订阅了:
3.使用emq websocket及其emq官网api:
github有示例,不再赘述。
4.MQTT.fx:
也可以在MQTT.fx中订阅:
此时再推送一条消息:
然后订阅这边就能看到这一条了: