1

我可以通过简化版本的示例来最好地描述我正在寻找的内容。Tornado 的演示之一是一个简单的聊天服务器:

https://github.com/facebook/tornado/blob/master/demos/chat/chatdemo.py

我对MessageMixin这里的课很感兴趣。它保留静态长度的消息积压,当有新消息可用时,它返回消息列表的新片段。或者这就是它看起来要做的事情。我知道我之前在编写一个简单的彗星应用程序时已经实现了类似的东西。

那么有没有人对此进行了概括并添加了一些花哨的东西呢?我对管理许多通信渠道和删除一段时间未使用的渠道的方法特别感兴趣。持久性也可能有用。

这是 MQ 可以做到的吗?

4

1 回答 1

3

Redis具有发布/订阅功能,以及其他面向数据结构的命令,您可以使用这些命令来持久化和过期消息积压、列出给定房间中的用户或与他们关联的其他属性。该协议是基于文本的,是 Memcached 命令的超集。

这是使用聊天作为 pub/sub 示例的描述,以及使用 Websocket 的Ruby 示例,以及使用Websocket、Tornado 和 Redis pub/sub实现简单聊天室的 Python 片段。

根据您问题中的信息,专用消息队列(如RabbitMQ)也可能对您有用。如果不知道您在消息量、容错、复制等方面需要什么,很难说。Redis 也可能是您正在寻找的东西,但如果没有别的,它非常简单,可以帮助您获得快速运行原型以进一步确定您的应用程序的要求。

于 2011-03-14T05:11:13.040 回答