WeChat 애플릿은 웹 소켓을 사용하여 사용자에게 새로운 정보가 있는지 확인합니다. 정보 개수가 0이면 오류가보고되고 문제가 해결됩니다.

Websocket을 통해 Java 백그라운드에 연결

wx.onSocketMessage(function (res) {
var objData = JSON.parse(res.data);
      console.log(objData.length);

res를 얻고 json으로 변환하여 objData의 길이를 가져 와서 새로운 사용자 정보의 양을 표시합니다.

문제는 정보가 0 일 때 res에 데이터가 없으면 objData가 res.data 데이터를 json으로 변환 할 수 없다는 것입니다.

해결책은 res를 json으로 변환하기 전에 res.data가 비어 있는지 확인하는 것입니다.

if (res.data != '') {
        var objData = JSON.parse(res.data);
      console.log(objData.length);
        that.globalData.shu = objData.length;
      }
      else{
        that.globalData.shu = 0;
      }

아래는 완전한 코드입니다.



onLaunch: function () {
    // 获取用户信息
    var that = this;
    var wei = this.lc(function (wei) {
     // console.log(wei);

     // that.setData({ openid: wei.data.openid });
    wx.connectSocket({
      url: "ws://localhost:9090/xcxmvc/so",
    })

    //连接成功
    wx.onSocketOpen(function () {
      console.log("c" +wei.data.openid);
      wx.sendSocketMessage({
        data: wei.data.openid,
      })
    })
    wx.onSocketMessage(function (res) {
      
      if (res.data != '') {
        var objData = JSON.parse(res.data);
      console.log(objData.length);
        that.globalData.shu = objData.length;
      }
      else{
        that.globalData.shu = 0;
      }
    })


    //连接失败
    wx.onSocketError(function () {
      console.log('websocket连接失败!');
    })

    });
  },

추천

출처blog.csdn.net/weixin_40938312/article/details/105022958