websocket和mqtt

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.1MQTT5。其中,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

相关推荐
qq_392794488 分钟前
深入解析:短轮询、长轮询、长连接与WebSocket(原理到实现)
网络·websocket·网络协议
苏苏大大43 分钟前
【八股】计算机网络
网络·计算机网络
忆源1 小时前
SOME/IP--协议英文原文讲解11
网络·网络协议·tcp/ip
baowxz1 小时前
tcp协议连接,和传输数据
网络·网络协议·tcp/ip
Long._.L1 小时前
Wireshark使用介绍
网络·测试工具·wireshark
ITPUB-微风2 小时前
功能开关聚合对象实践:提升金融领域的高可用性
网络·数据库·金融
火绒终端安全管理系统2 小时前
火绒终端安全管理系统V2.0【系统防御功能】
网络·安全·网络安全·火绒安全·火绒
Tanecious.2 小时前
计算机三级网络技术知识汇总【4】
网络·智能路由器
Matlab仿真实验室2 小时前
基于Matlab实现MAC协议-ALOHA协议仿真程序(源码+数据)
开发语言·网络·matlab·mac协议-aloha协议仿真
FuckTheWindows3 小时前
深入理解WebSocket接口:如何使用C++实现行情接口
websocket·行情接口·level2行情·实时行情