通过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连接失败!');
})
});
},