由zeromq触发的nginx背后的Websockets?

时间:2013-03-08 05:15:39

标签: python nginx websocket zeromq uwsgi

我正在尝试设计一个系统,该系统将处理大量数据并向客户端发送有关其进度的更新。我想使用nginx(谢天谢地,刚刚开始支持websockets)和uwsgi用于Web服务器,我用zeromq通过系统传递消息。理想情况下,解决方案可以用Python编写,但我也可以使用Nodejs甚至Go解决方案。

以下是我想要实现的流程:

  1. 客户访问网站并请求处理大量数据。
  2. 服务器通过zeromq将处理转移到另一个进程/服务器[worker],并回复客户端请求,说明处理已经开始,包括有关如何使用服务器设置websocket的信息。
  3. 客户端设置websocket连接并等待更新。
  4. 处理完成后,工作人员发送“处理完毕!”通过zeromq向websocket进程发送消息,websocket进程将消息推送到客户端。
  5. 我描述的可能吗?我想我认为我可以在emperor模式下运行uwsgi,以便它可以为web服务器处理一个进程(端口),为websocket进程处理另一个进程(端口)。我只是不确定我是否能找到一种方法来接收zeromq消息并管理来自同一进程的websocket连接。也许我必须从工人那里开始最后的websocket推送?

    非常感谢任何帮助/正确方向指向/潜在解决方案。任何带有正确路由的websockets的nginx配置文件的样本或片段也将受到赞赏。

    谢谢!

1 个答案:

答案 0 :(得分:2)

当然,这应该是可能的。您可能需要查看zerogw