在 MQTT 和 MQTT over websocket 的情况下,幕后会发生什么?

What happens under the hood in case of MQTT and MQTT over websocket?

对于每个请求,HTTP 和 Web 套接字都会进行 3 次握手,然后是 request/response 和终止(持久连接)。

与上面类似,我们有 MQTT 和 MQTT over websocket,两者都是基于 pub/sub 模型。 MQTT 是物联网硬件的理想选择,因为证书和密钥可以安全地存储在硬件设备上。 MQTT over websocket 是 mobile/web 应用程序的理想选择。

就 handshake/data exchange/TCP/UDP 而言,MQTT 和 MQTT over websocket 在幕后发生了什么?

MQTT 和 MQTT over Websockets 之间没有任何区别。

MQTT over Websockets 在传输层只有一个额外的部分。因此,一旦设置了 Websocket 连接,流经连接的实际字节对于本机 MQTT 和基于 Websockets 的 MQTT 是完全相同的。

因此您获得了 HTTP GET、UPGRADE 流,然后它直接进入 MQTT Connect 数据包,如 MQTT Spec

中所述