2014-09-25 87 views
0

我将tornado.websocket.WebSocketHandler的实例存储在字典中,因此当消息传到特定用户时,我可以将消息路由到相应的侦听器。龙卷风 - 使连接生存服务器反弹

这意味着当服务器反弹时,我们失去了侦听器的详细信息,客户端将不得不创建一个新的WebSocket实例。

我想实现将监听器详细信息存储在持久性存储中的方法,可能在redis中,但我不确定最佳方法。

我可以腌制WebSocketHandler实例并写入到redis中,然后在向特定用户发送消息需要路由到他们的客户端时进行读取和取消选择,但这感觉有点不方便。有没有更简单的解决方案?

回答

0

您不能有用地腌制WebSocketHandler,因为连接的套接字不能以这种方式传输。你也许可以用multiprocessing.Queue做一些事情,而不是简单的酸洗,但是这样做最棘手,最棘手。客户必须能够在任何情况下创建新的WebSocket连接以从网络中断中恢复;在服务器重新启动时执行相同操作是正常的。