收藏
回答

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

多个页签共享一个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 个回答

  • Geefib
    Geefib
    2019-11-14

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

    2019-11-14
    有用 1
    回复
  • 张斯特洛夫斯基
    张斯特洛夫斯基
    2019-12-26

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

    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'

          })

        })

    }


    2019-12-26
    有用
    回复
登录 后发表内容
问题标签