MQTT明细

MQTT

 

MQTT提供三种Qos的消息传递质:                                                                                                                                    

a.最多一次(Atmost once delivery):QoS=0,协议对此等级应用信息不要求回应确认,                                                                                                                                   

也没有重发机制,这类信息可能会发生消息丢失或重复,取决于TCP/IP提供的尽最大努力交互的数据包服务。                                                                                                                                   

b.最少一次(Atleast once delivery):QoS=1,确保信息到达,但消息重复可能发生,                                                                                                                                       

发送者如果在指定时间内没有收到PUBACK控制报文,应用信息会被重新发送,且控制报文中DUP标志位置1。                                                                                                                                           

c.仅仅一次(Exactlyonce delivery):QoS=2,最高级别的服务质量,消息丢失和重复都是不可接受的。                                                                                                                                        

                                                                                                                                           

MQTT的消息类型                                                                                                             

                                                                                                                                           

MQTT的三种角色通过14种不同的消息类型进行交互:                                                                                                                                        

1.CONNECT控制报文用于客户端请求与服务器建立连接,应用层的连接而不是TCP/IP连接,CONNECT控制报文的发送在TCP/IP建立连接后;                                                                                                                                 

                                                                                                                                           

2.CONNACK控制报文用于服务器向请求连接的客户端回发连接确认;                                                                                                                               

                                                                                                                                           

3.PUBLISH控制报文用于发布指定主题名的应用信息;                                                                                                                                         

                                                                                                                                           

4.PUBACK/PUBREC/PUBREL/PUBCOMP控制报文用于针对不同服务质量的应用信息的回应;                                                                                                                               

                                                                                                                                           

5.SUBSCRIBE控制报文用于订阅者向服务器发送一个主题过滤器列表,用于表示客户端想要订阅的主题;                                                                                                                                 

                                                                                                                                           

6.SUBACK控制报文用于SUBSCRIBE控制报文的响应;                                                                                                                                      

                                                                                                                                           

7.UNSUBSCRIBE控制报文用于向服务器发送一个主题过滤器列表,用于表示客户端想要取消订阅的主题;                                                                                                                               

                                                                                                                                           

8.UNSUBACK控制报文用于UNSUBSCRIBE控制报文的响应;                                                                                                                                         

                                                                                                                                           

9.PINGREQ/PINGRESP控制报文作为客户端和服务器间的心跳包;                                                                                                                                  

                                                                                                                                           

10.DISCONNECT控制报文用于客户端在断开前告诉服务器其将断开连接;                                                                                                                                     

 

Mosquitto  :     Mqtt server

安装Mosquitto                                                                                                      

Ubuntu 16.04在默认软件存储库中有一个相当新版本的Mosquitto。使用非root用户登录,并使用apt-get安装Mosquitto。                                                                                                                                     

sudo apt-get install mosquitto mosquitto-clients                                                                                                                                       

在新终端中,使用mosquitto_sub订阅测试主题:                                                                                                                                    

mosquitto_sub -h localhost -t test                                                                                                                                 

-h用于指定MQTT服务器的主机名, -t是主题名。 由于mosquitto_sub正在等待消息到达,因此在按ENTER后没有输出。切换回您的其他终端并发布消息:                                                                                                                                        

mosquitto_pub -h localhost -t test -m "hello world"              

模块

功能

mosquitto.conf

mosquitto服务器的配置文件

mosquitto

用来开启broker

mosquitto_passwd

用来设置用户的账号与密码

mosquitto_pub

用来发布消息

mosquitto_sub

用来订阅消息

pwfile.example

通过mosquitto_passwd来存储用户的账号密码的文件

 

信息

mosquitto_sub -h 192.168.0.22 -v -t "#"                      读取192.168.0.22的所有信息

 

打开服

mosquitto  -d -v

 

paho    :     mqtt client

linux上安装                                    

git clone https://github.com/eclipse/paho.mqtt.c.git                                            

cd paho.mqtt.c                                              

make                                               

sudo make install              

posted @ 2018-03-30 11:12  橙子好甜  阅读(438)  评论(0)    收藏  举报