このチャットは「ロングポーリング」または「HTTPストリーミング」を使用していますか?

StackOverflow https://stackoverflow.com/questions/2502222

質問

このチャットは「ロングポーリング」または「HTTPストリーミング」を使用していますか?

http://go-mono.com/moonlight/chat.aspx

役に立ちましたか?

解決

それほど単純なものではありません。それは使用しています http://www.mibbit.com/chat, 、JavaScriptとJavaで書かれた完全なIRCクライアントです。でブログ http://blog.mibbit.com/.

編集: これがあなたの答えです.

最初に機能したのは、ブラウザとサーバーの間の通信でした。これは、2 xmlhttprequestsを使用して行われます。最初のものは、単にブラウザからサーバーにデータを送信することです。新しい接続を最小限に抑えるために、Keep-Aliveを利用します。

2番目のXHRは、「怠zyな投票」です。サーバーに接続し、サーバーは利用可能なメッセージが表示されるか、タイムアウトが期限切れになるまで開いています。これも維持されているため、次のリクエストは同じ接続を下げます。

最終的には、パケット(この場合はJSON)があり、いくつかのHTTPヘッダーが随時サーバーに開かれている2つの接続が保持されます。サーバーがスケーリングされることを確認するために、NIOを使用してJavaにカスタムWebサーバーを書きました。 1つのスレッドですべての接続を処理し、私が言うように、数万の接続をスケーリングします。

クライアントが新しい接続を要求した場合、Webサーバーにリクエストを送信して接続し、プロキシなどを開始します。IRC接続の場合はIDERCERSTの場合も識別サーバーを実行して、IRCサーバーが個々のブラウザを識別できるようにします。私はこの種のことをするために既存のフレームワークなどを見ましたが、私はそれがすべてがどのように機能するかを学ぶことを大切にし、私のユースケースは一般的なフレームワークよりも多くを最適化できるほど具体的であると考えました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top