2011-11-23 20 views
3

まず、TornadoWebがあります。非同期で非ブロッキングで、反対側にはDojoがあります。私が竜巻を使用する場合、どのように道場と通信できますか?Pythonを使用したリアルタイム通知

もう1つの問題は、FlaskのようなWSGIソリューションを使用すると、それらと「通知」することができますか? WSGIを使用していないサーバと話すには、Dojoに「オープン接続」が必要ですか?平均; ApacheまたはCherryPyはDojoで動作しませんか?

WSGIがDojoと話すことができない場合、WSGIで通知をプログラムするためにAtomまたはFeedsを使用するのはどうですか?

注意:通知は2つに分けられます:すべてのユーザーの製品に関する通知と特定のユーザーに関する通知。セッションを使用します...

最後に、WebSocketとHTML5はどうですか?このオプションをブラウザで使用するには、サーバが互換性が必要ですか?

+2

http://www.tornadoweb.org/documentation/websocket.html + http://dojotoolkit.org/features/1.6/dojo-websocketは、いくつかのヒントを与える必要があります... – Philippe

+0

私はそれらの両方を使用する必要があります? – Abdelouahab

+1

サーバーはメッセージを送信し、クライアントはメッセージを受信し、逆も同様です...そうです! – Philippe

答えて

3

なぜDojoが通信上の問題であるかわかりません。

DojoにはAJAXラッパーが用意されています.AJAXラッパーを使用すると、AJAX要求を1〜5秒ごとに行うことで、ほとんど負荷のかからないWebアプリケーションでほぼリアルタイムの通知に使用できます。

アプリに多くのユーザーがいる場合、頻繁に発生するAJAXリクエストは、あまりにも多くのオーバーヘッドを素早く発生させる可能性があります。幸いにも、Dojoを使用してサーバーと通信する必要はありません。 Socket.IOを見ることができます。サーバー側のPythonに固執したい場合は、gevent-socketioです。これは、リアルタイム通信を提供するためにWebブラウザ(WebSocket、Flashソケット、彗星)で利用可能な最高の技術を使用しています。

また、dojox.socketもありますが、それほど堅牢ではないと思います。ただし、任意の種類の永続的な接続(WebSockets、Socket.IOまたはdojox.socketなど)を使用すると、多数の同時接続を維持できる非同期サーバーが必要であることに注意してください。

あなたが選ぶ解決策は、Webアプリケーション自体とそのユーザーベースに依存する必要があります。

+0

しかし、竜巻については、pythonの解決策はisentですか? – Abdelouahab

+1

です。実際には、Tornadoまたはgeventを使用して非同期サーバーを作成できます。私はちょうどそこに[トルネードのためのSocket.IOの実装](https://github.com/MrJoes/tornadio2)もあることを知りました。あなたが竜巻を知っているなら、それのために行ってください。そうでなければ、[いくつかのベンチマーク](http://nichol.as/benchmark-of-python-web-servers)は、geventがパフォーマンスが向上する可能性があることを示しています(これはかなり古いベンチマークですが、WebSocketsのパフォーマンスは考慮していません)。 –

+0

はい、Tornadoもフレームワークなので、web.pyで使用されているようなテンプレートエンジンとgoog URLディスパッチャを持っています – Abdelouahab

関連する問題