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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM