• Centos 安装MQTT服务器


    MQTT 

    1、MQTT (消息队列遥测传输),协议支持所有平台,把所有联网物品和外部连接起来。用来当作传感器和制动器的通信协议。

    主要提供订阅/发布两种消息模式,更 简约、轻量、易用。适合于受限环境(带宽低、网络延迟高、网络通信不稳定)的消息分发。

    MQTT 是基于TCP长连接,首先跟MQTT服务器简历TCP连接,然后发送登陆请求,要保持长连接,还要定时发心跳包跟服务器保持连接。

    名字

    流向

    描述

    CONNECT

    1

    C->S

    客户端请求与服务端建立连接

    CONNACK

    2

    S->C

    服务端确认连接建立

    PUBLISH

    3

    CóS

    发布消息

    PUBACK

    4

    CóS

    收到发布消息确认

    PUBREC

    5

    CóS

    发布消息收到

    PUBREL

    6

    CóS

    发布消息释放

    PUBCOMP

    7

    CóS

    发布消息完成

    SUBSCRIBE

    8

    C->S

    订阅请求

    SUBACK

    9

    S->C

    订阅确认

    UNSUBSCRIBE

    10

    C->S

    取消订阅

    UNSUBACK

    11

    S->C

    取消订阅确认

    PING

    12

    C->S

    客户端发送PING(连接保活)命令

    PINGRSP

    13

    S->C

    PING命令回复

    DISCONNECT

    14

    C->S

    断开连接

    2、数据包结构

    固定头(Fixed header):所有 mqtt数据包中,表示 包类型和数据包的分组类标识

    可变头(Variable header):部分mqtt数据包中,数据包类型决定了可变头是否存在及其具体内容

    消息体(payload):部分mqtt数据包中,表示客户端收到的具体内容。

    3、安装mqtt服务器

    http://mosquitto.org/files/source/ 下载 最新的mosquitto-*.tar.gz 文件

    https://codeload.github.com/warmcat/libwebsockets/zip/master 下载 libwebsockets-master.zip

    先解压 libwebsockets 并安装

    cmake -- 用途是能通过一系列的源码和相关的配置来生成需要的编译器平台上的项目文件。在这里是自动产生makefile文件用的工具。

    make install -- 这里用来安装 libwebsockets

    ldconfig 辅助命令, root 权限下 在/lib和/usr/lib 里添加库文件,无需将路径添加到 /etc/ld.so.conf 中,需要使用命令 ldconfig ,否则无法找到库文件。

     

    liblocal.conf 内部信息:

     

    安装 mosquitto

    根据需要修改 config.mk , 我的没改动。就用的默认的

    make install 安装即可

     

    进入 /etc/mosquitto 下

    mosquitto -c mosquitto.conf.example 运行 mosquitto

    可以看到 mosquitto 版本 1.5 ,开放端口 1883

    可以设定新的用户名密码: (此步骤可以省略,在测试时候不输入用户名密码即可)

    mosquitto_passwd -c pwfile.example testone

    aclfile.example 中修改testone 读写topic 权限

     

    新开一个 shell

    mosquitto_pub -h localhost -t subtopic -u testone -P testone -m "1212121"

    上传消息 pub:本地localhost topic: subtopic 用户名:testone 密码 :testone 发送消息:1212121

     

    新开一个 shell

    mosquitto_sub -h localhost -t subtopic -u testone -P testone

    接收消息 sub:本地localhost toptic:subtopic 用户名:testone 密码:testone 接收消息:1212121

     

    附一份Java 的 mqtt测试代码:

    https://github.com/wgy1109/mqttDemo

    MqttTest.java 中描述了Java向mqtt发送消息,以及从mqtt接受消息。

  • 相关阅读:
    rabbimq连接问题处理
    svn小设置
    日志的乱码,以及数据库编码问题
    Intellij Idea 14 使用jetty-maven-plugin配置运行web工程
    心血来潮
    maven nexus 私服的搭建学习
    致成长——毕业一周年
    2015-7-2
    我的JQuery复习笔记之①——text(),html(),val()的区别
    【转】title与alt的区别
  • 原文地址:https://www.cnblogs.com/wgy1/p/9770744.html
Copyright © 2020-2023  润新知