我注意到当我设置一个onDisconnect()
,在另一台计算机上点击我的应用程序,并关闭WIFI时,我的数据库没有更新; 但是,当我重新打开WIFI时它会更新.这让我很担心,因为我正在构建一个具有预期移动用户的应用程序,我想优雅地处理临时连接丢弃.
另一方面,/.info/connectcted立即知道断开连接和连接.
任何人都可以解释为什么会发生这种情况,并且一旦连接重新建立,是否有办法防止断开连接?
更新的代码:
var connectedRef, userRef; connectedRef = new Firebase('https://{fb}/.info/connected'); userRef = new Firebase('https://{fb}/users/myUser'); connectedRef.on('value', function (snap) { if (snap.val()) { userRef.update({ online: true }); userRef.onDisconnect().update({ online: false }, function () { console.log('Turn the Wi-Fi off after seeing this log.'); }); } });
结果:当我关闭Wi-Fi时,db 不会将在线设置为false,除非我等待大约1分钟.当我重新打开Wi-Fi时,数据库确实将在线设置为false.