38

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

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

4

6 に答える 6

11

Cometなどのいくつかのプッシュ テクノロジがありますが、広く実装されているわけではありません。ほとんどの場合、これは、AJAX を使用して短い間隔でポーリングし、最後にダウンロードされたメッセージ以降に利用可能な新しいメッセージをダウンロードすることによって達成されます。

于 2009-08-02T18:58:05.613 に答える
7

コメットを見てみよう

于 2009-08-02T18:58:31.947 に答える
4

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

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

于 2009-08-02T19:05:24.833 に答える
2

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

于 2009-08-02T19:01:15.293 に答える
1

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

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

于 2012-07-21T15:04:15.510 に答える