cordova暂停时Firebase断开连接
Firebase disconnects on cordova pause
我的应用程序面临的一个相当大的问题是,除非应用程序暂停,否则大约50%的启动都没有Firebase连接。所以我会:
- 启动应用程序以不加载数据
- 暂停以加载当前页面上的数据
- 恢复以查看数据
- 每次我需要发送或接收数据时,重复步骤2和3
代码:
var onPause = function(){console.log("paused");}
var onResume = function(){console.log("resumed");}
document.addEventListener("pause", onPause, false);
document.addEventListener("resume", onResume, false);
var connectionRef = new Firebase(FB + "/.info/connected");
connectionRef.on("value", function(snap){
if(snap.val() == true){
console.log("connected -------[]------");
} else {
console.log("not connected --------[ ]------------");
}
});
日志:
resumed
not connected --------[ ]------------
paused
connected -------[]------
resumed
not connected --------[ ]------------
paused
connected -------[]------
它之所以能在一半时间内发挥作用,是因为它也以相反的方式发挥作用,我认为这是预期的方式。有什么方法可以防止它断开连接吗?或者强制它在恢复时连接?
我找到了问题的原因——这是一个名为phonegap插件推送的插件。当它注册GCM时,它会导致Firebase离线(或在暂停时在线)。
我仍然没有找到真正的解决方案,但作为一个黑客修复程序,我在注册GCM时有一个计时器,这样数据就可以在断开连接之前加载。之后,它依赖于用户长时间不使用该应用程序,因此它可以定期暂停同步。
相关文章:
- 我们如何在互联网断开连接或用户关闭选项卡/浏览器时调用注销servlet
- 服务器上的Meteor客户端断开连接事件
- websocket客户端在发送大数据时断开连接
- Will my'新对象'在套接字断开连接时被垃圾收集
- socket.io:断开连接事件 - “传输关闭”、“客户端命名空间断开连接”、“传输错误”和“强制关闭”
- 套接字发生了什么's在'断开连接'事件(服务器端)
- 在客户端断开连接时释放事件处理程序 Socket.IO
- nodeJS视频流,当用户断开连接或移动到不同页面时,连接不会关闭
- jQuery replaceWith()后JavaScript断开连接
- Node.js域集群工作程序断开连接
- 如何在数据库断开连接时处理Redis会话
- socket.io,netty socketio,nginx每分钟断开连接
- SSE(服务器发送的事件)断开连接
- 多个chrome.runtime.onMessage-Listeners-断开连接的端口错误
- 断开连接时 socket.io 销毁连接
- 如何检测 socket.io 上的断开连接
- 套接字断开连接不起作用
- 当套接字断开连接时终止msnodesql连接
- 在异步加载谷歌地图时处理网络断开连接
- Socket.io :断开连接后重新连接时如何执行某些操作