gpt4 book ai didi

messaging - 0MQ 是一个协议(protocol)、一个层,还是两者兼而有之?我可以将它与 STOMP 结合使用吗?

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

由于对 STOMP 和 0MQ 都很陌生,我已经陷入了困境,但简而言之,我希望通过一个 PHP MOM 或多个 PHP MOM 的交互来促进浏览器中客户端到客户端的通信。我正在考虑使用 WebSocket 在 html5 浏览器客户端和 MOM 端点之间提供持久双工连接(如果可用),然后使用这些端点来促进任意数量的浏览器客户端之间的通信,这可能与 1-1、1- 相关。许多、许多-1 关系。

MOM 端点可能出于不同目的与其他服务器或它们之间进行通信,我相信 0MQ 可能是在这些服务器之间快速交换信息的可行方法。作为客户端之间的消息传递协议(protocol),STOMP 看起来不错(尽管我知道协议(protocol)定义存在一些问题)....

....这就是我的困惑点。要使用 STOMP,MOM 必须是 STOMP 代理,如果它是 STOMP 代理,那么由于 0MQ 是“无代理”消息传递层,我是否会违背使用两者的目的?

澄清一下,我正在考虑使用 0MQ 进行 MOM - MOM 通信,使用 STOMP 进行客户端 - 客户端通信。

当然,除非有一种方法可以重新利用 0MQ 来促进客户端到客户端的通信?我想我真正的困惑是 0MQ——它是一个轻量级消息传递层,而不是一个协议(protocol),还是两者兼而有之?如果只是一个层,我不能使用0MQ来传输STOMP消息吗?

如果有人能为我阐明 0MQ,我将非常感激 - 谢谢!

最佳答案

0MQ 提供了一个无服务器的类似套接字的 API,您可以在其上覆盖自己的协议(protocol)。 0MQ 传输普通的未解释的二进制数据(尽管某些语言绑定(bind)添加了对特定序列化的支持,例如 python pickling 或 JSON)。

与普通套接字不同,0MQ套接字可以是多对一、一对多。

0MQ 还具有消息传递模式的概念 - 例如,您可以定义 REQ/REP 套接字,它强制执行每个请求后面必须有响应的约束 - 您不允许连续发送两个请求。还有各种其他模式可以适应不同的情况。

查看 0MQ GuideAPI

因此,回答您的一些问题 - 0MQ 基本上是一个消息传递层,原则上您应该能够通过 0MQ 套接字发送 STOMP,就像普通网络套接字一样。但是,我不确定 Web 客户端是否可以直接使用 0MQ - 它需要语言绑定(bind)并且 ZMQ native 库需要可用。我认为这排除了网络客户端的使用。

关于messaging - 0MQ 是一个协议(protocol)、一个层,还是两者兼而有之?我可以将它与 STOMP 结合使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3247692/

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