websocket close多次整个小程序卡死,路由不可切换 ,滚动也不加载数据
发布于 5 年前 作者 gangxiao 784 次浏览 来自 官方Issues

页面建立了websocket长链接, 在onHide和onUnload里都进行了websocket断链接操作,然后频繁的进页面,返回上一页,基本操作两三次整个小程序就卡死了,不能进行任何操作,点击切换底部tab,菜单会选中,但是页面一直白屏loading, 卡死之前加载出来的页面可以滚动,但是滚动到底部不会加载数据,点击列表某项查看详情(navigator 标签导航),路由无法切换,下拉刷新也不请求数据,影响了很多用户,希望能尽快解决,长链接这个不好提供可复现的代码,目前只发现安卓华为手机有这个问题

2 回复

你按我说的操作,onHide onUnload两个钩子里都close,我用的不是wx.closeSocket(),用的websocket实例socketTask.close(),按理应该是一样的

    onUnload() {
      this.bClose = true;
      this.endSetInter();
      if (this.socketOpen) {
        console.log("关闭socket!");
        wx.closeSocket();
      }
    }

华为p30pro测试10来次,无楼主说的问题。

只在onUnload判断当前是链接成功状态后断连,onLoad里openSocket操作

仅供参考

回到顶部