質問

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

たとえば、Gmailでgoogle talkを実行します。それはどのように機能しますか?実装方法

役に立ちましたか?

解決

プッシュテクノロジーがあります。 .wikipedia.org / wiki / Comet_(programming) "rel =" noreferrer "> Comet ですが、広く実装されていません。ほとんどの場合、これはポーリングによってAJAXで少し間隔を空けてダウンロードし、最後にダウンロードしたメッセージ以降に利用可能な新しいメッセージ。

他のヒント

コメット

をご覧ください

Orbited はこれを実装する良い方法であり、彗星の方法論を使用しています。チュートリアルこちら

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

AJAX -GMailで実行されるクライアント側javascriptを使用しますユーザーのブラウザはGoogleサーバーとメッセージを送受信し、ブラウザウィンドウに書き込みます-ページの再読み込みは不要です。

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

Ajaxロングポーリングの詳細については、次の調査またはアクセスをご覧ください。 http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery

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

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