私は Python で Comet を実装する予定です (erlycomet については良いことを聞いていますが、バックエンドで他のすべてのものに加えて Erlang ベースの Web サーバーをサポートすることに興奮していません)。私はいくつかの可能性を見つけました:
(Java サーバーとインターフェースをとる他の選択肢もいくつかありますが、私はそれらには興味がありません)
パフォーマンス、コミュニティ、および実装の容易さを考慮して、誰かがこれらの実装の中で推奨を行うことができますか?
私は Python で Comet を実装する予定です (erlycomet については良いことを聞いていますが、バックエンドで他のすべてのものに加えて Erlang ベースの Web サーバーをサポートすることに興奮していません)。私はいくつかの可能性を見つけました:
(Java サーバーとインターフェースをとる他の選択肢もいくつかありますが、私はそれらには興味がありません)
パフォーマンス、コミュニティ、および実装の容易さを考慮して、誰かがこれらの実装の中で推奨を行うことができますか?
個人的には Twisted を使用していることと、成熟しているように見えることから、Orbited を使用しています。Twisted には、特に Diesel や Tornado と比較して、多くのユーザーとの素晴らしい長い歴史があります。Orbited は実際に Twisted の上に構築されています。
エンド ツー エンドの軌道ソリューションをカバーする優れたブログ エントリがここにあります。Python スクリプトから STOMP サーバー (MorbidQ) に Orbited to Javascript にデータを送信し、そのデータをグラフとしてレンダリングします。
トルネードはシーンにかなり新しいようで、ねじれ彗星を見つけることができず、ディーゼルについて聞いたことがありませんでした. Orbited が任意の種類の tcp/ip を転送できる方法が特に気に入っていますが、メッセージを渡す STOMP バックエンドで JavaScript クライアントを簡単にフックできます。
Comet アプリの作成を検討している場合は、Orbited をお勧めします。
Comet の実装が (Ajax アプリの作成よりも) 複雑になるのは、クライアント (Comet JavaScript クライアント) とサーバー (Twisted のような非同期 Web サーバー) の両方が連携して動作する必要があるためです。 Orbited - JavaScript クライアントとサーバーの両方。
Tornado と Diesel はどちらも主に非同期サーバー部分を提供しますが、重要なクライアント JavaScript コードが欠落しています。
さらに、Orbited には非常に優れたコミュニティがあり、何人かの人々がそれを使ってクールなアプリを作成しています。
コメットに落ち着きましたか?WebSocket ではないのはなぜですか? 後者もオプションである場合は、Twisted で WebSockets を実装するhttps://github.com/tavendo/AutobahnPythonを参照したいと思います(ドキュメントはhttp://autobahn.ws/pythonで入手できます)。標準に準拠しており、フレームベース/ストリーミング処理用のメッセージベースの基本 API と高度な API など、さまざまな機能を備えています。
Twisted も使用しています。しかし、Orbited の代わりに、Nevow.Athena を使用しています。それは本当に簡単です: 詳しくはLiveElement チュートリアルを読んでください。
WebSocket-for-Pythonをお試しください
Tornado は正常に動作します。ここで websockets の例を修正できます: https://github.com/Introduction-to-Tornado/Introduction-to-Tornado/tree/master/asynchronous_web_services/websockets