国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > MQTT代理搭建

MQTT代理搭建 時(shí)間:2018-09-29      來(lái)源:未知

近接觸MQTT協(xié)議,MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸協(xié)議)協(xié)議是一種基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級(jí)”通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上,由IBM在1999年發(fā)布。MQTT大優(yōu)點(diǎn)在于,可以以極少的代碼和有限的帶寬,為連接遠(yuǎn)程設(shè)備提供實(shí)時(shí)可靠的消息服務(wù)。做為一種低開(kāi)銷(xiāo)、低帶寬占用的即時(shí)通訊協(xié)議,使其在物聯(lián)網(wǎng)、小型設(shè)備、移動(dòng)應(yīng)用等方面有較廣泛的應(yīng)用。

MQTT的特色

MQTT是一個(gè)基于客戶(hù)端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議。MQTT協(xié)議是輕量、簡(jiǎn)單、開(kāi)放和易于實(shí)現(xiàn)的,這些特點(diǎn)使它適用范圍非常廣泛。在很多情況下,包括受限的環(huán)境中,如:機(jī)器與機(jī)器(M2M)通信和物聯(lián)網(wǎng)(IoT)。其在,通過(guò)衛(wèi)星鏈路通信傳感器、偶爾撥號(hào)的醫(yī)療設(shè)備、智能家居、及一些小型化設(shè)備中已廣泛使用。

MQTT協(xié)議當(dāng)前版本為,2014年發(fā)布的MQTT v3.1.1。除標(biāo)準(zhǔn)版外,還有一個(gè)簡(jiǎn)化版MQTT-SN,該協(xié)議主要針對(duì)嵌入式設(shè)備,這些設(shè)備一般工作于百TCP/IP網(wǎng)絡(luò),如:ZigBee。

MQTT協(xié)議運(yùn)行在TCP/IP或其他網(wǎng)絡(luò)協(xié)議,提供有序、無(wú)損、雙向連接。其特點(diǎn)包括:

1. 使用的發(fā)布/訂閱消息模式,它提供了一對(duì)多消息分發(fā),以實(shí)現(xiàn)與應(yīng)用程序的解耦。

2. 對(duì)負(fù)載內(nèi)容屏蔽的消息傳輸機(jī)制。

3. 對(duì)傳輸消息有三種服務(wù)質(zhì)量(QoS):

4. 數(shù)據(jù)傳輸和協(xié)議交換的小化(協(xié)議頭部只有2字節(jié)),以減少網(wǎng)絡(luò)流量

5. 通知機(jī)制,異常中斷時(shí)通知傳輸雙方

服務(wù)質(zhì)量

接下來(lái)我們來(lái)了解一下MQTT的服務(wù)質(zhì)量,為了滿(mǎn)足不同的場(chǎng)景,MQTT支持三種不同級(jí)別的服務(wù)質(zhì)量(Quality of Service,QoS)為不同場(chǎng)景提供消息可靠性:

o 多一次,這一級(jí)別會(huì)發(fā)生消息丟失或重復(fù),消息發(fā)布依賴(lài)于底層TCP/IP網(wǎng)絡(luò)。即:<=1

o 至多一次,這一級(jí)別會(huì)確保消息到達(dá),但消息可能會(huì)重復(fù)。即:>=1

o 只有一次,確保消息只有一次到達(dá)。即:=1。在一些要求比較嚴(yán)格的計(jì)費(fèi)系統(tǒng)中,可以使用此級(jí)別

MQTT實(shí)現(xiàn)原理

MQTT可以理解主要由兩端構(gòu)成網(wǎng)絡(luò),一端是服務(wù)器端,另一端就是客戶(hù)端。

而客戶(hù)端又分兩個(gè)角色,一個(gè)是訂閱者、另一個(gè)是發(fā)布者,服務(wù)器則是代理,流程如下:

訂閱者首先在代理那訂閱主題,發(fā)布者發(fā)布該主題內(nèi)容時(shí),訂閱者才會(huì)收到,否則不會(huì)接收任何信息。

MQTT本身的消息也分為令部分:主題(Topic)和負(fù)載(payload)。

o Topic,可以理解為消息的類(lèi)型,訂閱者訂閱(Subscribe)后,就會(huì)收到該主題的消息內(nèi)容(payload)

o payload,可以理解為消息的內(nèi)容,是指訂閱者具體要使用的內(nèi)容

MQTT代理搭建(Linux下搭建)

我們?cè)谏厦媪私饬艘幌翸QTT,具體的協(xié)議可以去官網(wǎng)//mqtt.org查看,而這些知識(shí)只是協(xié)議的介紹,下面我們來(lái)了解一下如何搭建MQTT網(wǎng)絡(luò),mosquitto是MQTT的開(kāi)源代理,遵循的是MQTT v3.1.1協(xié)議。下面我們搭建代理。

2 # 下載源代碼包

wget //mosquitto.org/files/source/mosquitto-1.4.12.tar.gz

 shell Code 

2 # 解壓

tar zxfv mosquitto-1.3.4.tar.gz

 shell Code 

2 # 進(jìn)入目錄

cd mosquitto-1.3.4

 shell Code 

2 # 編譯

make

 shell Code 

2 # 安裝

sudo make install

遇到下屬問(wèn)題的解決辦法:

 idea Code
【1】編譯找不到openssl/ssl.h

【解決方法】——安裝openssl

sudo apt-get install libssl-dev

【2】編譯過(guò)程找不到ares.h

【解決方法】——修改config.mk中的WITH_SRV:=yes,改為WITH_SRV:=no

【3】使用過(guò)程中找不到libmosquitto.so.1

error while loading shared libraries: libmosquitto.so.1:

cannot open shared object file: No such file or directory

【解決方法】——修改libmosquitto.so位置

# 創(chuàng)建鏈接

sudo ln -s /usr/local/lib/libmosquitto.so.1/usr/lib/libmosquitto.so.1

# 更新動(dòng)態(tài)鏈接庫(kù)

sudo ldconfig

【4】make: g++:命令未找到

【解決方法】

安裝g++編譯器

sudo apt-get install g++

MQTT代理的搭建(windows下搭建)

Mosquitto有兩個(gè)模式,一個(gè)是win32,一個(gè)是cygwin,下面是下載地址:

mosquitto-1.0.3-install-win32.exe(743 kB) (Native build, Windows Vista and up)

mosquitto-1.0.3-install-cygwin.exe(2,026kB)(Cygwin build, Windows XP and up)

安裝win2版本

win32直接下載到本地,安裝即可。

如果缺少libeay.dll 、 pthreadVC2.dll、ssleay.dll等庫(kù)文件,需要下載到本地同級(jí)目錄再進(jìn)行安裝。

安裝cygwin版本

而安裝cywin是需要下載cygwin,下面是下載地址

mosquitto-1.0.3-install-cygwin.exe

Mosquitto依賴(lài)的lib有binutils、gcc4-core、gcc4-gcc、libwrap-devel、libwrap0、make、mercurial、wget。

后安裝mosquitto-cygwin軟件,可以在任務(wù)管理器中啟動(dòng)mosquitto服務(wù)。

MQTT設(shè)置用戶(hù)密碼(windows和Linux相同,這里以;Linux為例)

在 /etc/mosquitto/mosquitto.conf 文件中需配置是否允許匿名用戶(hù)、用戶(hù)存儲(chǔ)的用戶(hù)名密碼的文件路徑、用戶(hù)訪(fǎng)問(wèn)主題權(quán)限的文件路徑,配置文如下:

 NormalText Code 

allow_anonymous false # 不允許匿名

password_file /etc/mosquitto/passwd # 配置用戶(hù)密碼文件

acl_file /etc/mosquitto/acl  #配置topic和用戶(hù) (此文件是配置用戶(hù)訪(fǎng)問(wèn)某主題,

如果不配置則使用password_file文件中的用戶(hù)密碼進(jìn)行訪(fǎng)問(wèn))

添加用戶(hù)

 NormalText Code

#mosquitto_passwd -c /etc/mosquitto/passwd pub_client

#mosquitto_passwd /etc/mosquitto/passwd sub_client

第一個(gè)命令,參數(shù)多一個(gè)-c,是創(chuàng)建/etc/mosquito/passwd文件,將用戶(hù)名和密碼寫(xiě)到文件中,用戶(hù)名是明文,密碼是加密過(guò)的密文。

第二個(gè)命令,是在已有的用戶(hù)上添加新的用戶(hù)。

配置好后,代理會(huì)屏蔽匿名用戶(hù)。

為用戶(hù)添加可操作主題

 NormalText Code 

user pub_client

topic write mtopic/#

user sub_client

topic read mtopic/#

在給定mosquitto.conf中給定acl文件的路徑中 打開(kāi)文件,user后面添加已有用戶(hù)名,topic 后面添加 可讀或者可寫(xiě)的主題,read 是可讀,write是可寫(xiě)。

上一篇:MQTT開(kāi)源軟件之EMQ入門(mén)篇

下一篇:基于exynos4412的外部中斷處理

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專(zhuān)線(xiàn):010-82525158 企業(yè)培訓(xùn)洽談專(zhuān)線(xiàn):010-82525379 院校合作洽談專(zhuān)線(xiàn):010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見(jiàn)科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5,京公海網(wǎng)安備11010802025203號(hào)

回到頂部