gpt4 book ai didi

websocket - MQTT over WebSocket 和 SSE(服务器发送事件)的区别

转载 作者:行者123 更新时间:2023-12-04 23:41:53 25 4
gpt4 key购买 nike

当直接从 Web 服务器向 Web 浏览器发布/订阅消息或反之亦然时,我们可以使用 MQTT over WebSockets。同时,可以使用 SSE(半双工)将数据从 Web 服务器推送到 Web 浏览器。其他主要区别是什么?尤其是应用程序的相关安全性和一致性。

最佳答案

WebSocket 是由 IETF 标准化的低级(框架)传输和由 W3C 标准化的 JavaScript API。它不是发布/订阅。您可以拥有位于 WebSocket“顶部”的发布/订阅协议(protocol)。例如,AMQP 是一个可以用 WebSocket 实现的 pub/sub 协议(protocol)。另一个例子是 Java 消息服务 (JMS);虽然 JMS 是一个 API 而不是位协议(protocol),但它可以通过 pub/sub 协议(protocol)来实现,而后者又是用 WS 实现的。我提到 AMQP 和 JMS 是因为 AMQP 协议(protocol)和 JMS API 都提供了“确认”,与其他机制不同,这将为您提供高度的可靠性。

MQTT 是一种发布/订阅协议(protocol),可以通过低级传输实现。例如,MQTT 可以通过 TCP/IP 或 WebSocket 运行。 MQTT 具有 QoS 级别,它也给您确认(即,可靠性)。 MQTT 通常不是浏览器原生的,因此在连接到浏览器之前必须使 MQTT 消息对网络友好……通常是 WebSocket,因为 WS 是一个“胖管道”,在某种程度上类似于 TCP。

服务器发送事件 (SSE) 是“Comet”(或“反向 AJAX”)技术的 HTML5 形式化。“Comet”是非正式技术的松散集合;不同的实现不能一起工作。SSE 不是发布/订阅。它是一种将数据从服务器广播到浏览器客户端的 HTTP 机制。本质上它是一种即发即弃的技术。

大多数现代浏览器都理解 SSE 和 WS(IE/EDGE 目前不支持 SSE);他们通常也都了解 Secure WebSocket (WSS)。几乎所有的网络服务器和应用服务器都了解 SSE 和 WS/WSS。如果您使用 WSS,您的数据将在传输过程中被加密。在连接上设置了特定的加密密码;您必须调查浏览器客户端和网络/应用程序服务器理解的密码。

关于websocket - MQTT over WebSocket 和 SSE(服务器发送事件)的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34931826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com