1

簡略化されたバージョンの例を使用して、探しているものを最もよく説明できます。Tornadoのデモの1つは、単純なチャットサーバーです。

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 に答える