对MQTT的一些笔记整理

2017-11-15  本文已影响243人  不想再当程序猿

这里只是做了一些简单的笔记,这些内容都是通过看一个大神的文章MQTT协议中文版文档总结的一些笔记:

1.MQTT协议的实现方式:

2.对传输消息有三种服务质量(QoS):

3.客户端和服务端:

和传统的协议不同,MQTT是一个基于客户端和服务端的发布/订阅模式的消息传输协议。

真正的“服务器端”指的是中间的代理部分(broker),发布者和订阅者都属于“客户端”。

客户端 Client
使用MQTT的程序或设备。客户端总是通过网络连接到服务端。它可以

服务端 Server
一个程序或设备,作为发送消息的客户端和请求订阅的客户端之间的中介。服务端

4.控制报文的结构:

5.遗嘱(will flag:

6.关于CleanSession:

  这个是eclipse.paho.mqtt.golang里面的一个函数,这个实在看文档的时候发现的一个不太理解问题。然后通过查其他资料解决的。
  是用来控制session flags的。

如果cleanSession被置为true那么客户端将不存在持久会话并且在任何情况下连接断开时所有的消息都会被丢弃。当cleanSession被置为false时,持久会话将会被创建,直至客户端再次将cleanSession置为true。如果一个持久会话是可用的,那么消息将会以队列的形式投递给可用的客户端。
在连接之前,您必须设置 cleanSession 方式;在整个会话期间都将保持此方式。要更改此属性的设置,必须将客户机断开连接,然后再重新连接客户机。如果您将cleanSession=false 更改为 cleanSession=true,那么此客户机先前的所有订阅以及尚未接收到的任何发布都将被废弃。

联合使用session flags和wills令你可以处理源于不稳定的网络及自动化服务规模的问题。

7.安全性问题:

这部分东西有点多,没时间详细总结,先放一个链接在这吧......
MQTT协议中文版 第五章 安全

上一篇下一篇

猜你喜欢

热点阅读