1

Twitter が構築したものと同様のストリーミング API (読み取り専用) を構築することに興味があります。データは、サーバーからクライアントへの一方向にのみ送信されます。クライアントは Web ブラウザである必要はありませんが、技術的に永続的な HTTP 接続を開いたままにできるものであれば何でもかまいません。Twitter のストリーミング API が行っていることは、WebSocket でも COMET でもないと確信しています。彼らが展開した技術/戦略は、研究できるw3c仕様を備えたものであるかどうか疑問に思っていました. W3C での彼らの戦略へのリンクは必ずしも見当たりません。したがって、それは「カスタム」である可能性がありますが、このサーバー側の HTTP ストリーミング サポートの構築に関連する流行語とプロトコルを理解するための正しい方向へのポイントは素晴らしいでしょう.

4

3 に答える 3

1

このスライドに基づいて、Twitter ストリーミング API はJettyサーバーを使用します。では、単純なブロッキング IO は機能しますか? 基本的に、クライアントは関心のあるツイートを伝えるリクエストを行い、サーバーは応答しますが、応答を閉じません。新しいつぶやきが届くたびに、サーバーは通知を受け取り、データをクライアントに書き込み (およびフラッシュ) しますが、応答を閉じません。

20ページのメモから:

サーバーは内部でどのように機能しますか? Hosebird は JVM 上で実行されます。Scalaで書かれています。また、組み込みの Jetty Web サーバーを使用して、フロント エンドの問題を処理します。各プロセスに 8 コアと約 12 ギガのメモリを供給します。そして、それぞれが多くのクライアントに大量のデータを送信できます。

免責事項:私はこのトピックに精通していないので、完全に間違っている可能性があります. 私が言ったことは私の感覚に基づいています。興味深いトピックです。

于 2013-10-13T06:36:28.490 に答える
0

パブリッシュ/サブスクライブ サービスを探しているかもしれません。これに関する良い情報はhttp://en.wikipedia.org/wiki/Publish/subscribeです。サービスを読み取り専用にして、有効なチャネルに接続しないクライアントからのメッセージを破棄できます。

実装は、redis http://redis.io/topics/pubsubと、適切なチャネルに接続するための小さなアプリケーションで行うことができます。

他の実装は、RabbitMQ http://www.rabbitmq.com/tutorials/tutorial-three-python.htmlで実行できます。他の実装がある と確信していますが、現時点ではそれらに関与していません。

これは、pub/sub http://www.w3.org/community/pubsub/への w3c リンクです。

于 2013-10-08T02:08:18.353 に答える