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接受消息。

原文地址:https://www.cnblogs.com/wgy1/p/9770744.html