31

ロングポーリングメカニズムを介して更新したいリアルタイムフィード (Facebook のニュースフィードに似ています) を持つ Web アプリケーションを構築しています。Python では、Stackless (Comet wsgi の例からビルド) を使用するか、Cometd + Twisted を使用するかのほとんどが私の選択であることを理解しています。残念ながら、これらのオプションに関するドキュメントはほとんどなく、Python での実稼働規模のコメット ユーザーに関する適切な情報をオンラインで見つけることができません。

本番システムで Python に comet をうまく実装した人はいますか? どのようにそれを実行しましたか? また、独自の実装を行うためのリソースはどこにありますか?

4

7 に答える 7

13

Orbitedは良い解決策のようです。試していませんが。


更新: 過去 2 年半で状況が変わりました。

現在、すべての主要なブラウザーに websocket がありますが、IE (当然のこと) と、IE に対するいくつかの非常に優れた抽象化があり、リアルタイム通信をエミュレートする多くの方法を提供しています。

于 2009-08-01T15:27:37.613 に答える
9

多くの人が使用しているStreamHub Comet Serverを使用することをお勧めします。個人的には、私が運営するいくつかの Django サイトで使用しています。ストリーミングを処理するには、ほんの少しの Java を記述する必要があります。これはJythonを使用して行いました。フロントエンド コードは、次のような非常に単純な Javascript です。

StreamHub hub = new StreamHub();
hub.connect("http://myserver.com/");
hub.subscribe("newsfeed", function(sTopic, oData) { alert("new news item: " + oData.Title); });

ドキュメンテーションはかなり良いです - あなたがCometdらのまばらなドキュメンテーションを始めようとしているのと同様の問題がありました. まず、 Comet と StreamHub の使用を開始する を読み、いくつかの例がどのように機能するかをダウンロードして確認し、必要に応じて API ドキュメントを参照します。

于 2009-08-21T00:41:01.320 に答える
4

私はそのようなもののためにツイストを使用して大量の API を作成しましたが、そのほとんどは私のgithubアカウントで利用できます。

ほとんどはクライアント側ですが、sloshは、リアルタイムで安価な pubsub のようなことを行うために作成したサーバーです。単純なストリーム レプリケーションを可能にすることで、読み取りに対してある程度水平方向にスケーリングします。プレーンな HTTP に固執する場合、書き込みは少し異なりますが、デモ用にかなりの量をプッシュしました。

それ以外の場合は、ほとんどの XMPP サーバーがサポートする完全な BOSH があり、Web フロントエンドからメッセージ配信を切り離すことができます。

于 2009-06-07T04:18:34.740 に答える
2

私はそれを行っていませんが、この男は Django の例と他のフレームワークへのポインター (私はチェックしていません) を含む、それについての良い記事を書いています。

于 2009-06-07T01:22:44.667 に答える
1

これは、geventとDjangoでロングポーリングを行う例です

Greenletを使用します-CPython拡張としてパッケージ化されたStacklessのスタック切り替え機能。

于 2010-04-10T05:17:08.967 に答える
1

orbited および redis ソリューションは優れていますが、Google がリリースした PubSubHubbub のようなものがある場合は、もはや関連性がありません。これにより、特定のフィードのパブリッシャーまたはサブスクライバーになることが非常に簡単になります。http://code.google.com/p/pubsubhubbub/

于 2010-02-20T20:21:08.170 に答える