firebase を使用して Chrome バックグラウンド拡張機能を作成しています。私が気付いたのは、Chrome が開いているときにコンピューター (Win7) を休止状態にすると、firebase との接続が切断されることです (予想どおり)。ただし、休止状態から戻ると、自動的に再接続されず、.on() イベントが発生しなくなりました。
私はすでにAPIドキュメントと、切断の検出に関するこのStackOverflowの質問に目を通しました: Detect if Firebase connection is lost/regained
接続をテストするために使用している疑似コードを次に示します。
var myFirebase = new Firebase('https://my.firebaseio.com/'); //replace
setInterval(function() {
myFirebase.child('.info/connected').on('value', function (snap) {
if (snap.val() === true) {
console.log('Connected: ' + (new Date()).toString());
}
else {
console.log('Disconnected: ' + (new Date()).toString());
}
});
}, 5000);
これは、Webページを介してjavascriptを実行すると期待どおりに機能します-接続し、休止状態にすると切断され、休止状態から戻った直後に再接続します。
ただし、Google 拡張機能の一部としてバックグラウンド ページとして実行すると、切断され、再接続されません。
再接続を強制する方法や、これが期待どおりに機能しない理由はありますか?