web-dev-qa-db-ja.com

ブラウザ内チャットはどのように機能しますか?

ちょっと興味があるんだけど。ブラウザでのチャットはどの程度正確に機能しますか?通常、ユーザーがWebページにアクセスすると、そのWebブラウザーがページのコンテンツを要求します。サーバーは出力を生成し、それをユーザーのコンピューターに送信します。しかし、チャットでは、それは少し逆になります(正確にはそうではありません)。あるサーバーからチャットメッセージを要求しているのはユーザーではなく、直接送信するサーバーです。これは「通常の」サーバーで実現するのは本当に簡単ですが、サーバーがそれをブラウザーに送信することは私を直接混乱させます。メッセージ部分の投稿はすべて明確で、簡単です。たとえば、ajaxなどを使用してデータをサーバーに投稿するだけです。しかし、他のコンピュータは、メッセージが書き込まれたことをどのようにして即座に「知る」のでしょうか。書き込みが完了するとすぐに、他のコンピューターに送信するサーバーである必要があります。しかし、どういうわけかそれは私の脳では計算されません。私の頭の中では、ブラウザは物事を要求するだけで、それを取得するだけではありません。どのくらい正確にそれをしますか?

たとえば、Gmailでのグーグルトークを考えてみましょう。それはどのように機能しますか?それはどのように実装されていますか?

37
quano

Comet などの プッシュテクノロジー がいくつかありますが、それらは広く実装されていません。ほとんどの場合、これは polling を介して、AJAXを使用して小さな間隔で実行し、最後にダウンロードしたメッセージ以降に使用可能な新しいメッセージをダウンロードします。

11
tvanfosson

見てください 彗星

7
Guido

Orbited はこれを実装するための良い方法であり、彗星の方法論を使用します。あなたはチュートリアルを見つけることができます ここ

誰かがajaxポーリングについて言及しましたが、 cometは常にポーリングよりも優れています 。まあ、それはセンセーショナルなタイトルですが、彗星は間違いなくより適切であり、適切なバックエンドでサーバー側のストレスを軽減することができます。

4
ehsanul

[〜#〜] ajax [〜#〜] を使用します-GMailユーザーのブラウザで実行されているクライアント側のJavaScriptは、Googleサーバーとの間でメッセージを送受信し、ブラウザウィンドウに書き込みます-ページのリロードは必要ありません。

2
Joel

Facebookのチャットテクノロジーに似たブラウザチャットを開発しました( http://chatsign.com )。これはプッシュテクノロジーではありませんが、ポーリングよりも優れたものであり、ajaxロングポーリングと呼ばれます。

Ajaxロングポーリングの詳細については、調査を行うか、次のサイトにアクセスしてください: http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery ==

1
pygoh

最新のチャットアプリケーションは、SSE(Server Sent Events:html5の機能)を使用して新しいメッセージをブラウザに送信します

0
Julius Ijie