在python应用程序中结合websockets和WSGI

发布于 2021-01-29 15:15:40

我正在进行一项科学实验,其中大约有二十名测试人员互相/互相玩回合制游戏。现在,它是带有WSGI界面的Python
Web应用程序。我想通过websockets来提高可用性:当所有玩家都完成了回合后,我想通知所有客户更新他们的状态。现在,每个人都必须等待转弯超时,或者不断重新加载并等待“转弯仍在进行中”错误消息不再出现(忙碌,有效)。

我通读了多个websocket库的文档,并且了解了websockets的工作原理,但是我不确定将WSGI和websockets混合使用的体系结构:我是否可以在同一过程中拥有一个websockets和WSGI服务器(如果可以,如何,使用几乎任何websockets库)并仅从my_websocket.send_message()WSGI处理程序进行调用,还是我应该拥有单独的websockets服务器并进行一些IPC?还是我根本不应该混在一起?

编辑,六个月后:
我最终开始了一个单独的websockets服务器进程(使用Autobahn),而不是将其与WSGI服务器集成。原因是将两者分开更容易,更清洁,并且与WSGI进程(服务器到服务器的通信)中的websockets服务器进行通信很简单,并且首次尝试使用websocket-
client进行工作

关注者
0
被浏览
48
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这是一个可以满足您需求的示例:

    它运行一个WSGI
    Web应用程序(在这种情况下,它是基于Flask的,但是可以是符合WSGI的任何内容),并在1个服务器和1个端口下运行一个WebSocket服务器。

    您可以从Web处理程序中发送WS消息。Autobahn还在WebSocket之上提供了PubSub,WampServerProtocol.dispatch与您的情况一样,它极大地简化了(通过)通知的发送。

    披露:我是《高速公路》的作者,为Tavendo工作。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看