WebSocket是一種通信協議,它允許在瀏覽器和服務器之間建立持久連接,并允許雙向傳遞數據。MQTT則是一種輕量級的發布/訂閱消息傳輸協議,常用于物聯網(IoT)設備之間的通信。
?
(1)js能直接實現mqtt嗎,還是需要通過websocket間接實現?
JavaScript本身不能直接實現MQTT,但可以通過WebSocket間接實現。
要使用JavaScript實現MQTT,可以先使用WebSocket與服務器建立連接,然后通過WebSocket將MQTT協議的消息發送給服務器。服務器再根據MQTT協議對這些消息進行處理,例如發布、訂閱、取消訂閱等操作。
因此,雖然JavaScript不能直接實現MQTT,但可以通過WebSocket間接實現。
(2)mqtt協議主要版本?(2023-11)
目前MQTT協議的版本主要有兩個,分別是MQTT3.1.1和MQTT5。其中,MQTT3.1.1是ISO標準(ISO/IEC PRF 20922)下基于發布/訂閱范式的消息協議,工作在TCP/IP協議族上。而MQTT5則是在2019年發布的,它在3.1.1版本的基礎上做了更多的補充和完善,同時完全兼容3.1.1版本。
(3)通過websocket實現mqtt有哪些js庫?
通過WebSocket實現MQTT的JavaScript庫有MQTT.js和Paho MQTT.js:
- MQTT.js。MQTT.js是一個完全開源的MQTT協議的客戶端庫,使用JavaScript編寫,可用于Node.js和瀏覽器。在Node.js端可以通過全局安裝使用命令行鏈接,同時支持MQTT/TCP、MQTT/TLS、MQTT/WebSocket連接;值得一提的是MQTT.js還對微信小程序有較好的支持。
- Paho MQTT.js。Paho MQTT.js是一個JavaScript庫,用于在瀏覽器中實現MQTT協議的通信。它是由Eclipse Paho項目提供的,支持MQTT協議的客戶端實現,包括連接、訂閱、發布等操作。
文件大小:Paho MQTT.js相比小得多,?MQTT.js?壓縮版本311kb ,Paho MQTT.js 壓縮版本只有31kb。
MQTT.js?v3.0.0 及以上版本后,已經完整支持到 MQTT 5.0。
Paho MQTT.js支持MQTT協議的版本3.1和3.1.1,目前不支持MQTT協議5。 (2021年后就沒看到該庫有更新了)
paho-mqtt.js官網:https://eclipse.dev/paho/clients/js/?(訪問卡)
paho-mqtt - npm
PAHO MQTT.js并沒有構建的npm包,只有通過直接下載源代碼或使用CDN鏈接的方式在項目中引入。
PAHO MQTT.js版本1.0.2及之前的版本文件名用的是mqttws31.js,之后的版本文件名用的是paho-mqtt.js。
PAHO MQTT.js版本0.9.0全局變量用的 Messaging,之后到1.0.4版本全局變量用的是?Paho.MQTT,?1.0.0全局變量用的是?Paho 。
mqtt.js官網:?mqtt - npm