设备:红米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次就不再重连