设备:红米4A
系统版本:Android 6.0.1
代码如下:
wx.connectSocket({ url: address }) wx.onSocketOpen( function (res) { console.log( 'WebSocket连接已打开!' ) }) wx.onSocketError( function (res) { console.error( 'WebSocket连接打开失败,请检查!' ) }) wx.onSocketMessage( function (res) { console.log( '收到服务器内容:' + res.data) }) wx.onSocketClose( function (res) { console.error( 'WebSocket 已关闭!' ) setTimeout(function () { console.log('正在重新链接...') wx.connectSocket({ url: address }) }, 1.5 * 1000);
}) |
当手机网络完全断开后,WebSocket 会不断重连,导致手机CPU, 内存使用率爆表,直到程序崩溃。
wx.onSocketClose(
function
(res) {
console.error(
'WebSocket 已关闭!'
)
setTimeout(function () {
console.log('正在重新链接...')
wx.connectSocket({
url: address
})
}, 1.5 * 1000);
})
这里看到关闭的地方,又去调连接了,死循环了。重新连接加上限制次数之类应该就不会有问题了。
重连次数有限制一下,监视连接断开,记录重连次数,大于20次就不再重连