MQTT和Websocket的区别是什么?

MQTT和Websocket的区别是什么?,第1张

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。例如:\x0d\①网络代价昂贵,带宽低、不可靠。\x0d\②在嵌入设备中运行,处理器和内存资源有限。\x0d\该协议的特点有:\x0d\①使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。\x0d\②对负载内容屏蔽的消息传输。\x0d\③使用 TCP/IP 提供网络连接。\x0d\④有三种消息发布服务质量:\x0d\⑤"至多一次",消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。\x0d\⑥"至少一次",确保消息到达,但消息重复可能会发生。\x0d\⑦"只有一次",确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。\x0d\⑧小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量。\x0d\⑨使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。\x0d\WebSocket则提供使用一个TCP连接进行双向通讯的机制,包括网络协议和API,以取代网页和服务器采用>WebSocket (WS)是HTML5一种新的协议。它实现了浏览器与服务器全双工通信,能更好地节省服务器资源和带宽并达到实时通讯。WebSocket建立在TCP之上,同>什么是WebSocket

1、在HTML5出现

2、独立于>1WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。可以在一次特殊的websocket握手后,客户端和浏览器进行双向通信,而>客户端一般会有两种报错,connection refuse 和 connection timeout
connection refuse(连接拒绝)
一般是以下原因:
1、客户端连接的端口错了
2、客户端连接的域名或者ip错了
3、如果客户端使用了域名连接,域名可能指向了错误的服务器ip
4、服务端没有启动或者端口没有被监听
5、使用了网络代理软件
6、服务端监听ip与访问地址不在一个地址段。例如服务端监听127001,则客户端只能通过127001连接,不能通过局域网ip或者外网ip连接。建议监听地址设置为0000,这样本机、内网、外网都可以连接。
connection timeout(连接超时)
一般是以下原因:
1、服务器防火墙阻止了连接,可以临时关闭防火墙试下
2、如果是云服务器,安全组也可能会阻止连接建立,需要到管理后台开放对应端口
3、服务器不存在或者没有启动
4、如果客户端使用了域名连接,域名可能指向了错误的服务器ip
5、客户端访问的ip是服务器内网ip,并且客户端和服务端不在一个局域网
其它报错
如果发生的报错不是connection refuse 和 connection timeout则一般是以下原因:
1、客户端使用的通讯协议与服务端不一致。 例如服务端是>

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10564920.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存