一旦连接打开,有没有办法可以向客户端发送多个HTTP响应?例如,假设它是一个用OpenShift等PaaS运行的Python编写的游戏服务器。并且客户发送' GET'请求连接请求。我希望能够发送更新'从服务器每秒一次到客户端。我尝试保持连接打开并写入客户端,但它没有工作。我所能做的就是客户可以发送更新请求'每一秒,服务器都可以响应。 这有解决方法吗?
提前致谢。
答案 0 :(得分:2)
您所描述的是websocket,它是服务器和客户端之间的持久连接。我建议您使用socket.io,因为如果您的用户浏览器不支持websockets,那么它将回退到其他用于同一目的的协议。
为了使用套接字或socket.io,您必须在支持它们的服务器上使用python库,以及支持gevent或tornado等协同程序的库。查看gevent-socketio之类的内容(虽然暂时没有更新),或者搜索点数pip search socketio
以获取其他选项。
如果您不想实施自己的解决方案,另一种选择是使用Pubnub或Pusher等消息服务。我在我自己的python + openshift应用程序上使用Pubnub,并且集成是轻而易举的。这些消息传递服务负责维护与客户端的持久连接,当您希望一次更新一个客户端或多个客户端时,您只需向消息传递服务发送一条消息,然后将消息传递给目标收件人。
答案 1 :(得分:0)
对于看到此问题的其他人,您描述的是一种单向通信,而不是websocket的另一种方法是服务器发送事件,这是一种无需更改协议即可向客户端发送信息的HTTP解决方案。 websocket可以),您可以在this article中阅读两个选项之间的比较。
这里还有an article关于如何在Python中实现它们的信息。