收藏
回答

关于android机WebSocket 断线重连影响性能问题

问题模块
API和组件


设备:红米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, 内存使用率爆表,直到程序崩溃。

最后一次编辑于  2017-08-03  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

2 个回答

  • willen
    willen
    2017-08-03
    wx.onSocketClose(function (res) {
         console.error('WebSocket 已关闭!')

    setTimeout(function () {

            console.log('正在重新链接...')

            wx.connectSocket({

              url: address

            })

         }, 1.5 * 1000);

       })

    这里看到关闭的地方,又去调连接了,死循环了。重新连接加上限制次数之类应该就不会有问题了。

    2017-08-03
    赞同
    回复
  • 大夏天
    大夏天
    2018-01-20

    重连次数有限制一下,监视连接断开,记录重连次数,大于20次就不再重连

    2018-01-20
    赞同
    回复