20

I understand that in Firebase I can register my page for callbacks with the "on" method.

According to their docs:

on( ) is used to listen for data changes at a particular location. This is the primary way to read data from Firebase.

firebaseRef.on('value', function(dataSnapshot) {
  // code to handle new value.
});

My question is:

How does it work ?

How does it know that something has changed on the serverside ?

(better) How does the server can 'callback' the browser ?

One answer might be that it is "polling". But I have seen no reference about this approach in Firebase documentation or properties to configure polling time ...

Does anybody know ?

Many Thanks

4

1 に答える 1

35

Firebase はWebSocketを使用して、サーバーがデータをクライアントに「プッシュ」できるようにします。まだすべてのブラウザー バージョンが WebSocket をサポートしているわけではないため、それらのブラウザーのロング ポーリングにもフォールバックします。

それがサーバー上でどのように機能するかの実装の詳細は、独自の洗練されたものであり、SO の質問の範囲を超えて本を書くのに十分です。論理的には、宣伝どおりに機能します。サービスは、set()、push()、または update() (または REST の同等物) が呼び出されるたびに、リスナーに変更を通知するように設計されています。

ブラウザが WebSocket を使用するかどうかに関係なく、クライアントはサーバーに繰り返し接続しないため、「ポーリング時間」はありません。ロング ポーリングとは、変更が発生したかどうかを確認するために繰り返しポーリングするのではなく、データの変更が発生するのを待つことを意味します。チュートリアルやリアルタイムの例を試してみるとわかるように、データの変更は数ミリ秒ですべてのクライアントに同期されます。構成する必要はありません。

于 2013-09-05T16:17:36.357 に答える