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

相关推荐
虎头金猫1 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
只睡四小时1 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
wuyk5551 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
XUEYUAN52122 天前
ASN 自治系统号风控:平台如何通过 IP 所属自治域批量识别代理流量
python·网络协议·http·网络安全·socks5
QYRdata2 天前
年均增速24.2%!机器人数据湖未来六年增长动能强劲
网络·机器人·服务发现
CHENKONG_CK2 天前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
chshang19922 天前
工业路由器是什么?浅谈5G工业网络中的IR602
网络·物联网·5g·智能路由器
萧瑟余晖2 天前
Netty 核心组件与 Reactor 模型详解
网络·架构
ITxiaobing20232 天前
IP 定位服务选型指南:从准确率到工程落地的技术考察
linux·服务器·网络
wuyk5552 天前
【Socket 进阶之路】第 9 章 Linux 网络服务量产稳定性优化|心跳保活、TIME_WAIT、SO_LINGER、内存池、断线重连、完整异常防护框架
linux·服务器·开发语言·网络·物联网