2009-05-31 13 views
34

Waveは、他のユーザーが何かを入力したかどうかを調べるために、毎ミリ秒ごとにサーバーをポーリングしないことを確信しています...だから、他のユーザーが何を入力しているのかはどうすればわかりますか?帯域幅を奪うことなく。Google Waveでライブのリアルタイムタイピングはどのように機能しますか?

+0

の答えの一つでいくつかの情報は、それが使用bcozそれは本当に彗星を使用していここhttp://stackoverflow.com/questions/928744/what-technologies-is-google-wave-using –

答えて

38

永続的なHTTP、Comet

は、2014年に編集*生きているあなたのHTTP接続を維持し、それらが

を入力しているような文字を送信します。また、WebSocketのとHTTP/1.1 Upgrade headerを見てみましょう。ブラウザは2010年頃にこれを実装し始めたので、これを元の回答に追加します。

+0

ありGWT? –

+5

彗星は流行語であり、定義されたフレームワークや技術ではありません。 gwtを使用して実装することはできますが、好きですが –

6

Webソケット、別名サーバー送信イベント:http://www.w3.org/TR/websocketsおそらく、基礎となるプロトコルは(at the IETFとして)見つけることができます。

更新:WebSocketにまだ実装されていないようです。 a video from Google I/O(11:00に行く)は、長寿命のHTTP GETリクエストについて話します。

+0

ユーザーにはそのような制限がありますか?私はあなたに何人かの代理人を与えるためにあなたに投票します。 –

+0

あなたの投票のおかげで、私は "複数のハイパーリンク"を含むように私の答えを編集し、実際にはIETFドラフトにリンクしました。 –

1

純粋な推測ですが、HTML5仕様のServer Side DOMイベントを使用している可能性がありますか? (近端)分の55で

3

を参照してくださいビデオの周りGoogle Wave: Powered by GWT

Q:今後のプラン::HTML5のWebソケットあなたが永続的な接続、長い生活のHTTP接続

Aを実装する方法。長期間。それは私たちが今使っているものです。

Q:ダウンロードして再生できるプラットフォームまたはライブラリはありますか?

A:わかりません。そう思わないでください

P .:それは彼が言ったことです。私にとってはそれほど意味がありませんでした( "将来の計画"対 "現時点での使用")。どのネイティブの英語のスピーカーが、私が正しくそれを転写したかどうか確認したいかもしれませんか?

+3

文脈から少し外れているので混乱します。答えは基本的に意味しています:はい、私たちは吊り下げ要求(別名「彗星」)を使用しています。将来の計画では、実装が利用可能になったらWebSocketsに移行することです。 –

+0

リンクは404 –

+0

です@Tom:私のためではありません – Casebash

0

これからの彗星はおそらく今のwebsocketです。 Firefox 3.5と私が読んだことで動作するので、websocketはFFの夜間のビルドでしか利用できません...私は間違っている可能性があります... IEではまったく動作しないようです。

4

Server Push in GWT

サーバープッシュが応答し、待っている、クローズ、再オープンパラダイム:

  • 待ち:GWTコードはあなた いくつかのデータは、サーバーへのコール を行いフリーズ(待機)

  • 応答:ご利用のデータが
    の場合は、

  • 閉じる:次に、接続を閉じます。

  • Re-Open:GWTコードが応答を受け取ったらすぐに新しい接続を開き、次のイベントを問い合わせます。

-1

私はそれらがajax要求を使用すると仮定します。非同期のXMLHttpRequestを実行し、サーバーにブラウザを送信する何かがあるときは、登録されたjavascriptコールバックがデータを取得し、何でもそれを行います。だから、基本的にブラウザは次のイベントを要求し、それを処理し、無限に繰り返す。

+0

XMLHttpRequestは一度だけ送信されます。応答がなかった場合、接続は終了します。誰も何も待たない。 "コメット"の技術が何をしているのか、無限のGETリクエスト..これについてwikiで読む。 – holms

1

WebSocketの全理由は、リアルタイム通信を使用できるようにブラウザが双方向ソケットをサーバに開いたままにすることです。誰かがウェーブクライアントで相手のタイプを入力すると、それはサーバーに送信されるイベントをトリガーし、サーバーはイベントを受信する必要があるかどうかを調べ、イベント(この場合は入力された文字)を渡します。

WebSocketとCometが異なります。

グランビル

0

私はGoogle Waveのクライアントコードだったロボットやガジェットを必要とせずに、すべての公共の波のためのGoogleの波の読み取り専用パブリッククライアントであるhttp://antimatter15.com/misc/read/用(恥知らずなプラグリバース・エンジニアリングいくつかの時間を費やしGoogleがアップグレードを開始しなかった1ヶ月前にはもっと便利でした)。

とにかく、GoogleはGoogle閉鎖ライブラリ(実際にはオープンソースであり、文書化されている)の特定の側面でGWTフレームワークを使用しており、goog.net.BrowserChannelライブラリを使用しています。 gmail。

http://closure-library.googlecode.com/svn/docs/closure_goog_net_browserchannel.js.html

関連する問題