计算机理论文档阅读笔记-MQTT vs WebSocket

当人们初次看到 MQTT 和 WebSocket 时,它们看起来很相似。因为在两种情况下,一旦建立连接,用户就可以在客户端和服务器之间发送任何内容。此外,两者都是全双工的,这意味着客户端和服务器可以实时地进行双向通信。MQTT 是基于消息的,而 WebSocket 是基于会话的。尽管在某些上下文中它们非常相似,但在某些类别上它们可以有所不同。

什么是 MQTT?

MQTT 代表消息队列遥测传输,是一种轻量级消息协议。它用于与网络带宽成本高的远程设备通信。例如------Facebook 在其移动版本中使用 MQTT。

优点:

  • 高效的数据传输且易于实施,因为它轻量级。
  • 功耗低。
  • 网络使用率低。
  • 数据分布非常高效。

缺点:

  • 传输周期较慢。
  • 它是不加密的。
  • 安全问题。
什么是 WebSocket?

它是一种实时协议,通过单个 TCP 连接在 Web 客户端和 Web 服务器之间提供持久的全双工通信通道。基本上,它创建了一个 Web 浏览器与服务器之间的双向通道。例如 - 金融行情显示、实时多人游戏等。

最小优势:

  • 支持双向通信。
  • 跨平台兼容性
  • 比 HTTP 更快地发送和接收数据。

缺点:

  • 不提供边缘缓存。
  • 缺乏类似 AJAX 的成功机制。
  • 网页浏览器必须完全符合 HTML5 标准。
MQTT 与 WebSocket 的区别

|----|--------------------------|---------------------------------|
| | MQTT | WebSocket |
| 1. | 有一个设置优先级的特性。 | 没有设置优先级的特性。 |
| 2. | 它用于客户端和服务器应用程序。 | 它用于网页客户端应用程序。 |
| 3. | 通信过程中开销最小。 | 在使用多个物联网设备进行通信时,开销很大。 |
| 4. | 它专为物联网设备设计。 | 它专为全双工/双向通信信道设计。 |
| 5. | 在 MQTT 中,多个参与者可以订阅和发布消息。 | 在 WebSocket 中,客户端和服务器之间进行点对点通信。 |
| 6. | 消息分发是一对多。 | 消息分发是一对一。 |
| 7. | MQTT 是基于消息的。 | WebSockets 是基于会话的。 |

结论:MQTT 更受青睐,因为它提供了简单 WebSocket 所不具备的功能和抽象。此外,在嵌入式系统中,MQTT 比 WebSocket 更适合,因为它在协议层面提供了质量服务、通信过程中的最小开销以及发布/订阅系统。

相关推荐
三品吉他手会点灯7 小时前
C语言学习笔记 - 20.C编程预备计算机专业知识 - 变量为什么必须的初始化【重点】
c语言·笔记·学习
kobesdu7 小时前
【ROS2实战笔记-12】rosshow:终端里的盲文可视化与无头机器人的现场调试
笔记·机器人·ros·移动机器人
sakiko_7 小时前
UIKit学习笔记1-创建项目(使用UIKit)、使用组件
笔记·学习
智者知已应修善业8 小时前
【51单片机中的打飞机设计】2023-8-25
c++·经验分享·笔记·算法·51单片机
智者知已应修善业10 小时前
【51单片机按键调节占空比3位数码管显示】2023-8-24
c++·经验分享·笔记·算法·51单片机
JasmineX-110 小时前
数据结构(笔记)——双向链表
c语言·数据结构·笔记·链表
灰子学技术11 小时前
Envoy HTTP 流量层面的 Metric 指标分析
网络·网络协议·http
上海云盾-小余11 小时前
海外恶意 UDP 攻击溯源:分层封禁策略与业务兼容平衡方案
网络·网络协议·udp
程序猿乐锅11 小时前
【Tilas|第三篇】多表SQL语句
数据库·经验分享·笔记·学习·mysql
AOwhisky12 小时前
Kubernetes 学习笔记:集群管理、命名空间与 Pod 基础
linux·运维·笔记·学习·云原生·kubernetes