MQTT和Websocket的区别_丨晋丨-CSDN博客

      最后更新:2021-12-30 18:24:43 手机定位技术交流文章

      目录

      相同点:

      不同点:

      通信模型不同

      报文结构不同

      会话协商方式不同

      消息收发方式不同

      保活机制不同

      使用场景不同

      总结

      相同点:

      • MQTT、 WebSocket 和其他应用级别协议
      • 目前,在最底层使用TCP协议,以确保数据传输的可靠性。
      • 他们都计划了自己报告的布局
      • 都支持双向通信
      • 所有代码都采用二元代码(而不是HTTP等基于文本的协议)。
      • 都基于公共规范 rfc6455mqtt

      不同点:

      通信模型不同

      WebSocket是一个简单的文本协议。集中力量解决浏览器和服务供应商无法双向互动的问题。与在TCP协议中占主导地位的UDP协议相似。WebSocket 仅具体说明会议是如何开始的,以及信息的结构和类型。邮件和通信完全由应用程序(不同的浏览器)处理。

      MQTT 是一个更复杂的邮件协议 。MQTT不仅提供独特的协议代码,而且还提供独特的协议代码还界定了客户和服务器通信模式。特别是,MQTT是一项面向主题的新闻广播协议。 客户端 任何主题都可以创建、加入和签署。这是我第一次听说过它, 这是我第一次听说过它, 这是我第一次听说过它, 这是我第一次听说过它, 这是我第一次听说过它, 这是我第一次听说过它。除此之外,MQTT还控制信息服务的质量(QoS)。这是政府有史以来第一次支持至少一个、一个和三个程度的准确性。协议规定,交货是否会发生重复。

      总结下来,MQTT 是一个更加复杂的信息传输协议 。另一方面,WebSocket只支持基本的TCP通信。这两项协定在不同级别上运作。从这个意义上讲,MQTT 可用于 WebSocket 。

      报文结构不同

      WebSocket报告比MQTT报告容易得多,尽管这两个报告都使用两种编码编码。

      以下是WebSocket报告的组织方式:

      WebSet 中的文本结构

      核心是代码字段,只有4位元,最多16个组合:

      1. 值 0 表示当前电文是上一条的延续。
      2. 1 表示当前电文以文本格式发送。
      3. 2 表示本信息具有二元性质。
      4. 3-7 预留
      5. 8 表示关闭会话
      6. 9 ping
      7. 10 pong
      8. 11-15 预留

      尽管 WebSocket 发送 ping 和 pong 信息, 取决于应用程序代码的设计方式,

      MQTT协议的措辞相当复杂,共分为三部分:

      Fixed Header,
      present in all MQTT Control Packets
      Variable Header,
      present in some MQTT Control Packets
      Payload, present in
      some MQTT Control Packets

      每篇文章都包含固定头条信息。根据类型,有些报告还包含额外头信息。最后是信息本身。

      MQTT 的顶头结构

      MQTT 显示信件类型也使用了 4 位元, 16 个组合。 它与 WebSocket 相同。 MQTT 信件类型是 :

      Name Value Direction of
      flow
      Description
      Reserved 0 Forbidden Reserved
      CONNECT 1 Client to Server Connection request
      CONNACK 2 Server to Client Connect acknowledgment
      PUBLISH 3 Client to Server or
      Server to Client
      Publish message
      PUBACK 4 Client to Server or
      Server to Client
      Publish acknowledgment (QoS 1)
      PUBREC 5 Client to Server or
      Server to Client
      Publish received (QoS 2 delivery part 1)
      PUBREL 6 Client to Server or
      Server to Client
      Publish release (QoS 2 delivery part 2)
      PUBCOMP 7 Client to Server or
      Server to Client
      Publish complete (QoS 2 delivery part 3)
      SUBSCRIBE 8 Client to Server Subscribe request
      SUBACK 9 Server to Client Subscribe acknowledgment
      UNSUBSCRIBE 10 Client to Server Unsubscribe request
      UNSUBACK 11 Server to Client Unsubscribe acknowledgment
      PINGREQ 12 Client to Server PING request
      PINGRESP 13 Server to Client PING response
      DISCONNECT 14 Client to Server or
      Server to Client
      Disconnect notification
      AUTH 15 Client to Server or
      Server to Client
      Authentication exchange

      会话协商方式不同

      WebSocket基于HTTP/1.1 HTTP/1.1 将举行一次联合机制协商会议,会议将举行如下:

      WebSocket 咨询程序, 来源: https://dotnetplaybook.org。 本文是全球之声.com/what-is- best-websockets- or- signalr/com/wich-is- west- websockets- or- signalr/com/wich-is- west- websockets- or- signalr 特别报导的一部分。

      讨论结束后,将设立一个由两人组成的渠道,以便向双向传输数据。

      贸易、技术和贸易部协议规定,必须举行一次有目的的磋商会议:

      org/president/an-era-of-iot-m2m-communization-protocols-mqtt-e68d81b9313。

      TCP 连接建立后, 客户端会自行发送 CONNECT 信息。 当服务器准备好后, 它会响应 CONNACK 信息 。

      消息收发方式不同

      由于基本的TCP协议将完成可靠的通信,WebSocket不需要另一方确认:

      我不确定你在说什么,Vaadata。这篇文章是我们特别报导全球之声Online.com/blog/websockets-security-attacks-rises/的一部分。

      MQTT 信息必须根据交付水平进行验证 :

      MQTT出版确认, 资料来源:http://ww.un.org.

      只需确认两次,信息才能发布一次!

      保活机制不同

      WebSocket 仅仅支持两种形式的 ping/pong 信息,并不要求定期接收和发送心跳包。

      MQTT提供了一个明确界定的心率咨询机制。

      使用两个字节以秒表达心跳间隔。 PINGREQ 和 PINGRESP 信息是定期磋商所必需的。

      使用场景不同

      MQTT主要用于诸如物联网等环境,而WebSocket则主要用于网络开发领域,因为附带的浏览器API。 然而,两者都是标准的应用级协议,可以在任何合适的环境中使用。

      • MQTT是为基于TCP的Pub/Sub协议为互联网网站建造的,并且有许多网络优化特点,如QOS、等级主题、最后词等等,可以适用于其他网络。
      • WebSocket 是一个协议, 目的是允许 HTML 5 和服务器之间的双向通信, HTTP 握手, 然后转向 TCP 协议, 取代先前的服务器推进、 彗星 和长回合查询 。

      两者的结合是由于一种应用设想:如何利用HTML5 应用程序作为 MQTT 客户端接收设备信息或向设备提供信息,然后通过 WebSocket 进行MQTT自然是最明智的途径。

      总结

      MQTT 和 WebSocket 是用于报告的二进制通讯协议。 WebSocket 更简单,更灵活,而 MQTT 则更精密,更有用。 您可以根据您的需要选择 。

      无论它是否有效, 我建议您从两个协议中学习。 文本协议应该查看 HTTP, 而二进制协议应该查看 WebSocket 和 MQTT。 这将为协议的结构提供一个坚实的参照点 。

      MQTT和Websocket之间有什么区别?

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/15456.html

          热门文章

          文章分类