web-dev-qa-db-ja.com

Gmailチャットはどのようにしてクライアントとの対話なしでAJAXリクエストを行うことができますか?

すべてのHTTP応答では、AJAXを使用して作成されたものであっても、クライアントがそれらを開始する必要があります。しかし、GMailのチャット機能は、快適なコンピューターの椅子に座ってブラウザを操作していなくても、他のユーザーからのメッセージを受信できます。彼らはどのようにそれをしましたか?

59
chat

その技術は「comet」として知られていますが、「server Push」、「reverseajax」などとしても知られています。

これは、サーバーからブラウザにデータをプッシュし、http接続を維持することです。詳細については、 ウィキペディアの記事英語版 )を参照してください。

また、これは かなり良いプレゼンテーション DWRのJoeWalkerと一緒に、彗星について話します。

42
Pablo Fernandez

正しく指摘したように、HTTPではクライアントがデータを「プル」する必要があります。 Gmailは、ユーザーが何かをクリックする必要はなく、タイマーを使用してHTTP操作をトリガーすることで、サーバーからデータを「プル」できます。したがって、自動のように見えるかもしれませんが、それでもクライアントによって開始されます。

8
sybreon

うん彗星は正しいです。 RyanDewsburyによるGoogleWeb Toolkitアプリケーション 第9章で、Cometsベースのインスタントメッセンジャーアプリケーションを作成する方法について説明します。

5
Ankur