8

我想在不刷新或关闭页面的情况下断开 Firebase 套接字,但该怎么做呢?

我可以使用像 socket.disconnect() 或 socket.close() 这样的方法吗?我刚刚找到了 socket.onDisconnect() 方法。

4

2 回答 2

18

Firebase 最近为每个客户端添加了对两个新静态方法的支持,Firebase.goOffline()并且Firebase.goOnline()允许您在应用程序中手动断开连接并重新连接。

来自https://www.firebase.com/docs/javascript/firebase/gooffline.html

手动断开 Firebase 客户端与服务器的连接并禁用自动重新连接。

Firebase 客户端自动维护与 Firebase 服务器的持久连接,该连接将无限期保持活动状态,并在断开连接时重新连接。然而,goOffline() 和 goOnline() 方法可用于手动控制客户端连接,以防不需要持久连接。

离线时,Firebase 客户端将不再接收来自服务器的数据更新。但是,在本地执行的所有 Firebase 操作将继续立即触发事件,让您的应用程序继续正常运行。此外,在本地执行的每个操作都会在重新连接到 Firebase 服务器时自动排队并重试。

要重新连接到 Firebase 服务器并开始接收远程事件,请参阅 goOnline()。重新建立连接后,Firebase 客户端将传输适当的数据并触发适当的事件,以便您的客户端自动“赶上”。

注意:调用此方法将影响所有 Firebase 连接。

有关更多详细信息,请参阅Firebase.goOffline( )Firebase.goOnline( )

于 2013-11-07T20:26:36.967 回答
-19

var dataRef = new Firebase(" https://SampleChat.firebaseio-demo.com/ ");

您可以使用dataRef.unauth()断开连接。

于 2013-05-11T07:32:26.237 回答