zoukankan      html  css  js  c++  java
  • 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              

  • 相关阅读:
    mysql innodb myisam 主要区别与更改方法
    oracle双机热备概念
    oracle 查询死锁 kill 会话进程
    数据库触发器new old
    openssh 7.1升级方式
    GoldPoint(结队编程)
    四则运算
    自我介绍及目标
    WorldCount项目
    企业级应用与互联网应用的区别以及Java EE思维导图
  • 原文地址:https://www.cnblogs.com/orangezs/p/8675128.html
Copyright © 2011-2022 走看看