Centos 安装MQTT服务器

MQTT java

一、MQTT (消息队列遥测传输),协议支持全部平台,把全部联网物品和外部链接起来。用来看成传感器和制动器的通讯协议。git

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

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

名字shell

服务器

流向websocket

描述网络

CONNECTsocket

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

断开链接

二、数据包结构

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

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

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

 

三、安装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接受消息。

相关文章
相关标签/搜索