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

相关推荐
Kapibalapikapi11 小时前
家用无线网络设置方案
网络
谢尔登11 小时前
通用会话控制方案
前端·网络协议·tcp/ip·react.js·gitlab
惜茶11 小时前
websocket操作入门
前端·javascript·websocket
老蒋新思维11 小时前
借陈修超之智,搭建 AI 与 IP 的创新增长桥梁|创客匠人
网络·人工智能·网络协议·tcp/ip·ip·知识付费·创客匠人
遇见火星12 小时前
Linux 网络性能测试实战:用 iperf3 精准测出真实带宽与丢包率
linux·网络·php·iperf3
无心水12 小时前
【分布式利器:RocketMQ】2、RocketMQ消息重复?3种幂等方案,彻底解决重复消费(附代码实操)
网络·数据库·rocketmq·java面试·消息幂等·重复消费·分布式利器
重启编程之路13 小时前
python 基础学习socket -TCP编程
网络·python·学习·tcp/ip
Hqst_xiangxuajun13 小时前
服务器主板选用网络变压器及参数配置HX82409S
运维·服务器·网络
老蒋新思维14 小时前
陈修超入局:解锁 AI 与 IP 融合的创新增长密码
网络·人工智能·网络协议·tcp/ip·企业管理·知识付费·创客匠人
xxtzaaa14 小时前
告别IP关联烦恼,多部手机如何实现不同IP防封号
网络·网络协议·tcp/ip