MQTT Part 11 基于WebSockets的MQTT

本文翻譯自http://www.hivemq.com/blog/mqtt-essentials-special-mqtt-over-websockets

未經(jīng)允許,不得轉(zhuǎn)載

基于WebSockets的MQTT(MQTT over WebSockets)

我們已經(jīng)學(xué)習(xí)了MQTT的基礎(chǔ)內(nèi)容,對于資源受限的設(shè)備和不可靠的網(wǎng)絡(luò)環(huán)境來說,MQTT是個理想的通信協(xié)議。同時它產(chǎn)生的流量也很小。所以對于瀏覽器,手機(jī)或其他設(shè)備來說,用MQTT來收發(fā)數(shù)據(jù)也將是一個很好的選擇。MQTT over WebSockets使這種構(gòu)想成為可能。它使得瀏覽器可以利用MQTT的所有功能來服務(wù)于下列應(yīng)用場景。

  • 顯示設(shè)備或傳感器的實時信息
  • 接受推送消息,例如一個警告或危險提示
  • 通過遺囑和保留信息來查看設(shè)備當(dāng)前狀態(tài)
  • 通過手機(jī)或網(wǎng)頁程序?qū)崿F(xiàn)即時通信

從技術(shù)角度來看這意味著什么?

每個支持WebSockets的現(xiàn)代瀏覽器都可以成為一個完美的MQTT客戶端,其可以實現(xiàn)我們之前提到的所有功能。例如心跳、遺囑、QoS和保留消息都和原生MQTT一樣工作。我們只需要一個支持MQTT over WebSockets的JavaScript庫。我們還需要一個支持MQTT over WebSockets的broker。當(dāng)然了,HiveMQ支持這些功能。

它如何工作?

WebSocket是一個支持瀏覽器和服務(wù)器雙向通信的網(wǎng)絡(luò)協(xié)議。它于2011年定型并且所有的現(xiàn)代瀏覽器都支持WebSockets。和MQTT相似,WebSockets也是基于TCP的。


當(dāng)使用術(shù)語MQTT over WebSockets時,其代表著在網(wǎng)絡(luò)傳輸時,一個MQTT消息,如CONNECT或PUBLISH消息被封裝在一個或多個WebSocket數(shù)據(jù)幀中。之所以WebSockets適用于承載MQTT,是因為其通訊是雙向的、有序的和無損的(這本質(zhì)上是由于WebSockets也基于TCP)。為了通過WebSockets和MQTT的broker通信,broker必須支持原生的WebSockets。一些人也通過web服務(wù)來橋接WebSockets和MQTT,但是我們不推薦這樣做。HiveMQ原生支持此功能,更多信息可以參見使用HiveMQ實現(xiàn)基于WebSockets的MQTT。

為什么不直接使用MQTT?

現(xiàn)在瀏覽器還不支持直接用MQTT,主要是因為瀏覽器不支持最基本的TCP連接。以后這個會通過Socket API來實現(xiàn),但目前只有極個別的瀏覽器支持此API。

開始使用

如果你想開始使用MQTT over WebSockets,這有幾個較好的資源供你參考:

安全WebSockets

WebSockets支持TLS加密,HiveMQ也可以實現(xiàn)此功能,使用時候有一些需要注意的地方,我們已在用戶手冊中指明。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 本文翻譯自http://www.hivemq.com/blog/mqtt-essentials-part-3-cl...
    qinwenbo閱讀 8,239評論 0 14
  • 關(guān)鍵詞 JMS、ActiveMQ(ActivityMQ)、Apollo、MQTT、Android 摘要 由于項目開...
    KtYY閱讀 4,764評論 2 21
  • 【蘿鼓萱天】20170907 學(xué)習(xí)力踐行記錄 day115 1,牛津樹點讀五本,四舊一新。萱兒超級喜歡讀《Pres...
    眸眸_50ae閱讀 300評論 0 0
  • 感賞上午又去把卡提高了額度,人很多,營業(yè)員就讓我多等了會兒,最后給我弄的,弄好以后我又當(dāng)著她得面操作了一遍,確定沒...
    宋億青s六中換閱讀 148評論 0 0

友情鏈接更多精彩內(nèi)容