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