9

HTTP経由でリクエストを受け入れるJSON-RPCサーバーを構築しています。双方向通信(クライアントとサーバーの両方がリクエストを送信できる)をサポートしたいと思います。具体的なユースケースは、クライアントがリクエストを送信し、(ほぼ)リアルタイムでsubscribe(X)リクエストを受信するパブリッシュ/サブスクライブアーキテクチャです。changed(X)私の知る限り、これをHTTPで実装する方法はいくつかあります。

  • 長いポーリング
  • WebSocket
  • Cookieベースのセッションモデルを使用したコールのポーリング
  • ストリーミング(HTTP接続を開いたままにする)
  • 上記のいくつかの組み合わせ

私が探しているのは、受け入れられているインターネット標準(可能な場合)に基づいており、Webブラウザーから使用でき、クライアント側で簡単に操作できるソリューションです。これまでのところ、私はストリーミングを好みます(Twitter、CouchDBはそのようにします)が、ブラウザーとJSON-RPCライブラリ内でこれがどの程度サポートされているかはわかりません。また、私が知らない他の方法があるかもしれません。

前もって感謝します。

4

4 に答える 4

3

私の知る限り、ストリーミングはFF、Chrome(アプリケーション/オクテットストリームのデータ型またはプレリュードが機能する必要があるバッファリングの問題があります)、およびIE8(小さなXDomainRequestを介して)によってサポートされています。オペラについては知りません。

彗星の業界標準についてはよくわかりません。おそらくバイユーが最も近いでしょう。すべてのコードが難読化されているため、facebook / gmail / twitterがどのように機能するかを確認するのは困難です。また、すべてのブラウザーがすべてを処理する方法に関する多くの情報を見つけるのは非常に困難です。

さらに難しいのは、専用サーバーを使用する必要があることです。これだけ多くの接続を開いたままにすると、スレッドプールなどが必要になります。通常のサーバーは非常に高速に起動します。

ただし、確実に機能させることができれば、非常に強力な設計です。

于 2011-01-28T15:53:59.477 に答える
3

タスクを実行するには、 socket.ioを確認する必要があると思います。著者からのこのビデオを見たい場合は、「Socket.IO Workshop:GuillermoRauch 」をご覧ください。クライアントとして両方のサーバーで作業するのは簡単です。socket.ioの上にredisを使用して簡単なサンプルpubsubを作成しました。

于 2011-01-28T16:20:17.990 に答える
2

JSONRPC(双方向)を確認する必要があります。これは、WebSocket、Worker、WebRTC、およびHTTPを介した双方向RPCをサポートし、高度に拡張可能です。

于 2019-06-16T14:47:49.200 に答える
1

Javaの実装に興味がある人がいたら、サンプルアプリとそれに関するブログ投稿を書きました。Java、Maven、Comet、Bayeux、Springを使用しています。 http://jaye.felipera.cloudbees.net/ http://geeks.aretotally.in/thinking-in-reverse-not-taking-orders-from-yo

于 2011-02-19T13:48:53.680 に答える