是什么让 MQTT 成为我们无法在浏览器中运行的原始 TCP 连接?

问题描述 投票:0回答:1

浏览器无法运行纯MQTT,但我们可以使用Websocket来传输MQTT消息。我的问题很简单。既然 MQTT、Http 和 websockets 都依赖于 TCP,为什么浏览器可以对话 Http 和 websockets,但不能对话 MQTT。浏览器无法打开原始 TCP 连接,但到底是什么让 MQTT 打开原始 TCP 连接?

http browser tcp mqtt
1个回答
0
投票

所有 HTTP、MQTT、Websockets 都直接使用 TCP(HTTP/3 使用 UDP),您将其描述为“原始”连接。但这些是 TCP 之上的不同应用层协议。出于安全原因,浏览器不允许来自 Web 应用程序内的“原始”TCP 连接。相反,它限制了可以使用的应用程序协议。其他任何内容都必须以某种方式转换为允许的应用程序协议,例如通过 WebSocket 进行隧道传输,而不是直接使用“原始”TCP。

...但是我们可以使用websockets来传输MQTT消息

仅当有一个后端可以将封装在 WebSockets 中的 MQTT 转换为普通 MQTT,即删除外部 WebSockets 隧道。

© www.soinside.com 2019 - 2024. All rights reserved.