最近在学习websocket遇到一些问题:(我是用websocket做一个聊天的demo,目前只在模拟器上运行。)
1.怎么在关闭聊天页面的时候就关闭websocket连接
2.如图。点击返回重新进来,连接还在,能接受发送信息。另外一端可以收到,但是小程序端就是更新不到数据
onShow: function() {
if (!socketOpen) {
this.websocket()
}},
onShow里是这样的判断。不加socketOpen判断的话,超过连接两次就会报错
3. onHide和onUnload 都有写
wx.closeSocket({
success:function(res) {
socketOpen = false
console.log('WebSocket 已关闭!')
}
})
当我返回上个页面时console打印了一个onUnload的websocket关闭。重新进去后它websocket连了第二个
再返回重进一次就报错
文档里写的理解不太清楚 求大佬指教!!!
=========================================================================
onClose返回1006该怎么解决呀!!!!
var socketTask;
Page({
/** * 页面的初始数据 */
data: { },
/** * 生命周期函数--监听页面加载 */
onLoad: function (options) {
this.WebSocket(this)
},
/** 生命周期函数--监听页面卸载 */
onUnload: function () {
console.log('onUnload')
socketTask.close();
},
WebSocket(e) {
socketTask = wx.connectSocket({
url: 'ws://123.207.167.163:9010/ajaxchattest'
})
socketTask.onOpen(function (res) {
console.log('WebSocket连接已打开!')
socketTask.send({
data: 'on'
})
})
socketTask.onMessage(function (message) {
console.log('message', message)
})
socketTask.onClose(function (res) {
console.log('WebSocket连接已关闭!')
})
}
})
你onhide 和 onunload 方法里打印一下close函数的回调res看看啊 到底关了没
关闭了,onClose的code有异常,code:1006
你去看一眼文档看看这个1006有什么影响
文档没有吧,只是说1000才是正常关闭。而且这段示例代码啥意思也没懂
onHide
我onHide和onUnload都有写
wx.closeSocket({
success:function(res) {
console.log('WebSocket 已关闭!')
}
})
可连接还是没关闭