WeChatアップルは、websocketを使用して、ユーザーが新しい情報を持っているかどうかを取得します。情報の数がゼロの場合、エラーが報告され、問題が解決されます。

websocketを介してjavaバックグラウンドに接続します

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

resを取得し、jsonに変換して、objDataの長さを取得し、新しいユーザー情報の量を表示します

問題は、情報がゼロのときに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
おすすめ