有没有办法在连接打开后向客户端发送多个 HTTP 响应?例如,假设它是一个用 Python 编写的游戏服务器,运行在 OpenShift 等 PaaS 上。客户端发送一个“GET”请求,其中包含连接请求。我希望能够每秒从服务器向客户端发送一次“更新”。我尝试保持连接打开并向客户端写入数据,但没有成功。我所能做的就是客户端每秒发送一个“更新请求”,服务器可以响应该请求。 有解决方法吗?
提前致谢。
最佳答案
你所描述的是一个websocket,它是服务器和客户端之间的持久连接。我建议您使用socket.io ,因为如果您的用户浏览器不支持 Websocket,那么它将回退到具有相同目的的其他协议(protocol)。
为了使用套接字或socket.io,您必须在支持它们的服务器上使用Python库,以及支持gevent或tornado等协程的库。查看类似 gevent-socketio 的内容(虽然已经有一段时间没有更新了),或者在 pip、pip search socketio
上搜索一些其他选项。
如果您不想实现自己的解决方案,另一种选择是使用消息服务,例如 Pubnub或Pusher 。我在自己的 python+openshift 应用程序上使用 Pubnub,集成非常简单。这些消息传递服务负责维护与客户端的持久连接,当您想要一次更新一个或多个客户端时,您只需向消息传递服务发送一条消息,它们就会将该消息传递给预期的收件人。 p>
关于python - 如何使用 Python 从服务器按时间间隔发送多个 HTTP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17848470/