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