如何正确设置Pyramid和ZeroMQ以提供简单的聊天/消息接口?

0 投票
1 回答
516 浏览
提问于 2025-04-18 00:30

我正在尝试构建一个使用ZeroMQ的Pyramid应用,目的是提供一个非常简单的聊天/消息界面,但我似乎无法搞清楚正确的设置和工作流程。

从我的角度来看,这个结构看起来相当简单,最基本的形式可以用两个Pyramid的“视图”或“路由”来描述:

  1. 客户端的SSE“显示消息”视图:这个视图/路由会保持对客户端开放(在客户端使用服务器发送事件,服务器端使用Pyramid的response.app_iter),监听来自ZeroMQ的消息,并在收到消息时将其“传递”给客户端。
  2. “提交新消息”视图:这个视图/路由会接收包含单条消息数据的POST请求,然后将这些数据传递给ZeroMQ,以便在SSE视图中接收并显示给任何正在监听的客户端。

然而,不知为何,我一直无法找到实现这个功能的正确方法。谷歌上关于0MQ和Pyramid的资料似乎很少,而我自己尝试的各种方法要么导致Python/Pyramid的线程/进程问题,要么就是0MQ根本无法发送或接收任何消息(这可能与我的线程问题有关)。

那么,如何才能正确地用Pyramid构建这样的应用呢?

附言:你可以假设任何版本的Python/Pyramid等在你的回答中。关键是要得到一个如描述所示的可用的东西。

1 个回答

1

几年前,我做了一个关于这个的概念验证。

https://github.com/antoineleclair/zmq-sse-chat

撰写回答