多个页签共享一个Websocket长连接如何实现?
发布于 6 年前 作者 yongyu 1918 次浏览 来自 官方Issues

多个页签共享一个Websocket长连接如何实现

app.js中连接websocket

App({

  onLaunch: function () {

    wx.connectSocket({

      url: ‘wss://wss.shanling.top’

    })

    wx.onSocketClose(function (res) {

      wx.connectSocket({

        url: ‘wss://wss.shanling.top’

      })

    }

请问其它子页面该如何写


2 回复

最好在每个需要监听的页面加个心跳维持长连接,在此基础之上,监听处理与本页面相关的消息

onShow:function(){

this.lisecence();

}

lisecence:function(){

wx.onSocketMessage((data)=>{

switch (data){

case ‘pong’:

let data = {};

data[‘type’] = ‘ping’;

setTimeout(()=>{

wx.sendSocketMessage({

data:JSON.stringify(data)

})

},心跳间隔)

break;

//这里写与本页面相关的消息处理逻辑

})

//再加一个断线重连

    wx.onSocketClose( (res)=>{

      wx.connectSocket({

        url: ‘wss://wss.shanling.top’

      })

    })

}

尝试使用代理的方式包装ws,再要监听的页面上加入listener数组,当收到ws消息的时候,去触发listerener中的函数

回到顶部