繁体   English   中英

为什么HTTP + Web套接字不适合作为消息传递协议?

[英]Why is HTTP + Web Sockets not suitable as a messaging protocal?

我已经读到HTTP在许多地方都不适合作为消息传递协议,例如在这里引用RabbitMQ。

我认为这是有技术原因的,并非仅出于意见。 我已经查看了AMQP 规范 ,但看不到HTTP + Web套接字无法正常工作的任何原因。 实际上,基于Web套接字的AMQP似乎正在工作 此外,我研究了STOMP协议,该协议的确使用HTTP + Web套接字,并且看不到任何重大限制(除了对性能造成的小影响之外)。

HTTP + Web套接字缺少什么技术特征使其不适合用作消息传递协议?

更新:这就是我想要的: Crossbar.IO -WAMP消息代理。 我需要一个可以轻松从浏览器连接到并且对RabbitMQ(通过STOMP)或HiveMQ(MQTT)不满意的消息代理。

HTTP基于请求/响应,这使得以发布者/订阅者的方式工作变得困难。 基本上,您可以轮询消息源中是否有新消息,或者创建另一个本地终结点,另一端将消息推送给您。

WebSocket是不同的。 尽管开始时是HTTP请求,但它会立即切换到持久的全双工连接,两端都可以推送数据。 基本上,在这种情况下,HTTP仅用作协商连接的协议,协商后的WebSocket使用其自己的协议来传输数据。

更新:我们很清楚,HTTP不是消息协议,因为它是请求/响应。 WebSockets尽管允许从两端推送数据,但它也不是消息传递协议。 它定义了一种框架数据的方式,但是没有定义语义或语法来订阅主题或有关消息的任何操作。 例如, WAMP是用于Websocket的实际消息传递协议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM