微信小程序 链接‌WebSocket

util.js 添加以下代码

var socketTask = null;
function link_chat(random){
   socketTask = wx.connectSocket({
    url:'你得链接',
  });

  // 监听 WebSocket 连接打开事件
  socketTask.onOpen(() => {
  // 检测是否链接成功

    getApp().globalData.is_chat='yes'
  });

  // 监听 WebSocket 连接关闭事件
  socketTask.onClose(() => {
    console.log('WebSocket 连接已关闭');

  });
  // 监听 WebSocket 错误事件
  socketTask.onError((err) => {
    console.error('WebSocket 错误:', err);
  });
    // 监听 WebSocket 接收到服务端消息事件
 socketTask.onMessage((res) => {  
   // 处理你服务器返回的数据

   msg.push(res.data)     //赋值给公共变量 
      //如果数据变化旧加1
   getApp().globalData.msgCount=getApp().globalData.msg.length+1
});
function sendSocketMessage(data) {
  if (socketTask && socketTask.readyState === 1) {
    socketTask.send({
      data: JSON.stringify(data),
    });
  }
}
// 关闭 WebSocket 连接
function closeSocket() {
  if (socketTask && socketTask.readyState === 1) {
    socketTask.close();
    socketTask = null;
  }
}

在app.js 添加公共变量

globalData:{
msg:[],
msgCount:0
}
//添加监听sgCount 数量变化
 watch: function (variate, method) {
    var obj = getApp().globalData;
    let val = obj[variate];
    Object.defineProperty(obj, variate, {
      set: function (value) {
        val = value;
        method(variate, value);
      },
      get: function () {
        return val;
      }
    })
  },

在你需要监听的页面添加

  onLoad(options) {
  
 getApp().watch('msgCount', () => {
 // 当msgCount有变化时候就更新服务器返回的消息
 this.data.fetch()
    })
 }
fetch:function(){
 var ltlist= app.globalData.msg  // 获取WebSocket 服务器返回的消息
 that.setData({
    arr:ltlist,
   })  
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

功能点分享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值