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

相關文章
相關標籤/搜索