var http = require("../../utils/util.js")
Page({
data: {
socketTask: null,
allContentList: []
},
onLoad: function() {},
openBtnClick: function() {
let that = this;
let socketTask = wx.connectSocket({
url: 'wss://cepingtest.nnyun.net/chat',
header: {
'content-type': 'application/x-www-form-urlencoded',
'channel': 'Xn4qDGinJJkSs8xWhJU'
},
success: function(res) {
console.log("建立连接成功");
console.log(res);
},
fail: function(res) {
console.log("建立连接失败");
console.log(res);
}
});
socketTask.onOpen(function(res) {
console.log("连接打开");
console.log(res);
});
socketTask.onClose(function(res) {
console.log("连接关闭");
console.log(res);
});
socketTask.onError(function(res) {
console.log("连接错误");
console.log(res);
});
socketTask.onMessage(function(res) {
console.log("服务端返回消息");
var DataJson = JSON.parse(res.data)
var temps = JSON.parse(DataJson.contentJson);
var temp = temps.data
console.log(temp)
that.data.allContentList.push(temp);
that.setData({
allContentList: that.data.allContentList,
})
});
this.data.socketTask = socketTask;
},
closeBtnClick: function() {
let socketTask = this.data.socketTask;
if (socketTask) {
socketTask.close({
success: function(res) {
console.log("关闭接口成功");
console.log(res);
},
fail: function(res) {
console.log("关闭接口失败");
console.log(res);
}
});
}
},
sendBtnClick: function() {
console.log("尝试发送消息:");
var data = {
content: '你好',
contentType: 1,
contentValue: '',
sendTime: http.formatTime(new Date()),
userId: 'CrCubJtbShINpbPYPSg',
roomId: 'Xn4qDGinJJkSs8xWhJU',
evaluateMode: 2
}
var msg = {
"name": "evaluation.addcontent",
"version": 0,
"happenTime": Date.parse(new Date()),
"contentJson": JSON.stringify(data),
"inputChannelEnum": "WEBSOCKET"
}
let socketTask = this.data.socketTask;
if (this.data.socketTask) {
socketTask.send({
data: JSON.stringify(msg),
success: function(res) {
console.log("发送消息成功");
console.log(res);
},
fail: function(res) {
console.log("发送消息失败");
console.log(res);
}
});
}
}
})
打开socket连接之后,点击发送消息,然后关闭连接,等待socketTask.onClose()事件,发现返回的是下面的情况
这是后端的原因还是前端的问题呢
代码片段是wechatide://minicode/zXXbKomL7Z3R
微信小程序开发问题解答
微信小程序开发者回答:
试了一下 ,应该是服务器没有响应中止连接请求
可以检查下服务器的逻辑
微信小程序开发者回答:
如果后端正常中止请求的话,是不是前端就可以一直这样开启连接,关闭连接操作超过两次了呢
微信小程序开发者回答:
可以的,理论上后端返回了中止连接的响应以后,socket对象才正式关闭&销毁
微信小程序开发者回答:
??
微信小程序开发者回答:
,这边测试是没问题的
微信小程序开发者回答:
这样是收到的,但是关闭的时候感觉不起作用,你连接一次,关闭一次,再连接一次关闭一次,第三次就不行了,感觉关闭就没有起到作用,然后你等个一亮分钟左右吧,webSocket会监听到关闭事件,但是返回的是1006不是1000
本文网址:http://www.91bianli.com/kaifazhinan/76373.html