龙卷风websocket聊天的可扩展性

时间:2013-06-03 09:05:01

标签: python tornado

在龙卷风websocket聊天示例中,参与者存储在集合(link)中,在单个服务器的情况下很方便。但是如果运行应用程序的多个实例和nginx作为负载均衡器,在这种情况下如何更好地存储参与者?

1 个答案:

答案 0 :(得分:5)

您可以考虑使用Redis的pubsub功能。 (link

编辑:

当您的客户登录聊天室时,他们可以subscribe访问某个频道,例如chatroom。它们使用的龙卷风实例并不重要。 使用this module,您可以异步收听频道。

如果另一个客户端向您的聊天室发送消息(即向消息chatroom发布消息),则所有龙卷风实例都会自动将消息发送给订阅该频道的用户。然后你可以通过websocket发送消息。

您可以查看此demo示例。