Firebaseソケットを切断したり、ページを閉じることなく切断したいのですが、その方法は?リフレッシュせずにFirebaseソケットを切断するか、ページを閉じる
socket.disconnect()やsocket.close()などのメソッドはありますか? socket.onDisconnect()メソッドが見つかりました。
Firebaseソケットを切断したり、ページを閉じることなく切断したいのですが、その方法は?リフレッシュせずにFirebaseソケットを切断するか、ページを閉じる
socket.disconnect()やsocket.close()などのメソッドはありますか? socket.onDisconnect()メソッドが見つかりました。
var dataRef =新しいFirebase( "https://SampleChat.firebaseio-demo.com/");
dataRef.unauth()を使用して切断できます。
あなたの答えをありがとう!しかし、私はdataRef.auth()を使用しなかったので、dataRef.unauth()は機能しません。 – zhuhan1236
これは正しくありません。 UnauthはWebSocketを閉じません。 –
Firebaseは最近、各クライアントに2つの新しい静的メソッド(Firebase.goOffline()
とFirebase.goOnline()
)を追加しました。これにより、アプリケーションで手動で切断して再接続することができます。 https://www.firebase.com/docs/javascript/firebase/gooffline.htmlから
:
手動でサーバーからFirebaseクライアントを切断し、 自動再接続を無効にします。
Firebaseクライアントは自動的にFireboxサーバ への永続的な接続を維持します。Firebaseサーバは無期限にアクティブのままであり、切断された場合には に再接続します。ただし、持続接続が望ましくない場合には、goOffline()およびgoOnline() メソッドを使用して、クライアント接続を手動で制御することができます( )。
オフライン中に、Firebaseクライアントはサーバーからデータ更新 を受け取らなくなります。ただし、ローカルで実行されたすべてのFirebase操作では、すぐにイベントが発生し、アプリケーションは に正常に動作し続けます。さらに、 ローカルで実行された各操作は、自動的にキューに入れられ、 Firebaseサーバーへの再接続時に再試行されます。
Firebaseサーバに再接続してリモートイベントを受信するには、 go go()を参照してください。接続が再確立されると、Firebase クライアントは適切なデータを送信し、適切な イベントを発生させ、クライアントが自動的に「追いつく」ようにします。
注:この方法を呼び出すと、すべてのFirebase接続に影響します。
詳細については、Firebase.goOffline()およびFirebase.goOnline()を参照してください。
ソケットを使用しなくても、ソケットを閉じることはありません。これを実証するには、ノードでそれを使ってみてください。トランザクションを実行した後、ノードプロセスはgoOfflineを実行した後も継続します。リターンコールを戻すために通常のプロセス終了を必要とするLambdaのようなものを使用しているときは、あまりにも悪いです。 –
あなたが解決しようとしている実際の問題は何ですか? – Kato
@Katoの質問に適合すると思われる明らかなユースケースは、Firebaseを使用するサイトの部分からユーザが離れた後に、帯域幅を不必要に使用することを避けるためにFirebase接続を閉じる単一ページアプリケーションです。 –