zoukankan      html  css  js  c++  java
  • 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接受消息。

  • 相关阅读:
    form表单重置、清空方法记录
    window location assign的使用
    简单易用的拾色器推荐
    display属性常用的四个值:block、inline、inline-block、none
    idea如何配置外部电脑访问本地项目
    Unity 2D相机公式换算(从其他博客上抄的)
    关于游戏逻辑模式的观点----谁调用谁
    Unity 角色场景传送功能
    Unity关于方法事件生命周期官方文档
    关于Unity物理事件的执行顺序的最新理解
  • 原文地址:https://www.cnblogs.com/wgy1/p/9770744.html
Copyright © 2011-2022 走看看