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

相关推荐
白帽黑客沐瑶19 小时前
【网络安全就业】信息安全专业的就业前景(非常详细)零基础入门到精通,收藏这篇就够了
网络·安全·web安全·计算机·程序员·编程·网络安全就业
树码小子20 小时前
Java网络编程:(socket API编程:TCP协议的 socket API -- 回显程序的服务器端程序的编写)
java·网络·tcp/ip
绿箭柠檬茶21 小时前
Ubuntu 服务器配置转发网络访问
服务器·网络·ubuntu
FPGA_Linuxer1 天前
FPGA 40 DAC线缆和光模块带光纤实现40G UDP差异
网络协议·fpga开发·udp
real 11 天前
传输层协议UDP
网络·网络协议·udp
路由侠内网穿透1 天前
本地部署 GPS 跟踪系统 Traccar 并实现外部访问
运维·服务器·网络·windows·tcp/ip
喵手1 天前
玩转Java网络编程:基于Socket的服务器和客户端开发!
java·服务器·网络
徐子元竟然被占了!!1 天前
实验-基本ACL
网络
ftpeak1 天前
从零开始使用 axum-server 构建 HTTP/HTTPS 服务
网络·http·https·rust·web·web app
LabVIEW开发1 天前
LabVIEW气体污染无线监测
网络·labview·labview知识·labview功能·labview程序