👉 js ( 项目里的不行,我提出来了个简单的小 demo )
open () { this .socketTask = wx.connectSocket({ url: `ws: //xxx.xxx.xxx:xxxxx`, success: res => { console.log( '----- socket create -----' ) } }) this .socketTask.onOpen(onOpen => { // this._socketOpen = true console.log( '----- socket 连接打开 -----' ) }) this .socketTask.onClose(res => { console.log( 'res--------------------> ' , res) }) }, close () { this .socketTask.close() } |
👉 wxml
< button bindtap = "open" >打开</ button > < button bindtap = "close" >关闭</ button > |
👉 打印信息
👉!!!正常的关闭应该是 code 为 1000,但是我就是正常关闭,监控却是 1006 非正常关闭,求指导~~
看起来像是缺少心跳包的实现?
你好,我是用 onclose 监听 websocket 是否正常关闭,如果是我主动触发正常关闭 code: 1000 的话,就不去重新建立 socket,如果不是正常关闭的话,我会重新连接。我是这个思路,没有用心跳检测。所以我遇到的问题是,我主动正常关闭却关闭不成功,就有问题了......,不知是不是我代码什么的写错了...还是怎么的.....[忧桑]
你给 this.socketTask.close 接口传一下 code 和 reason 试试?
this
.socketTask.close({
code: 1000,
reason:
'Normal shutdown~~'
})
没什么用......还是报
{code: 1006, reason:
"abnormal closure"
}
我用你的代码片段,加了这个后就正常了。你是 open 之后再进行关闭的么?
是的,先用 connectSocket 建立连接,然后 onOpen 回调函数监控正常打开...... 然后不行......
这个是我的代码和 log 信息...... 😳😳😳
麻烦提供一下出现问题的机型和微信版本,并且给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
版本信息:
手机: ios 12.1.2
手机微信:7.0.0
web 开发工具:v1.02.1811290
注:
1. web 开发工具 onClose 的 {code : 1006}
2. 手机打印的 onClose 的 {code : 1001}
3. 都不是 1000 正常关闭
代码片段:
1. https://developers.weixin.qq.com/s/Oh6m7YmY7t4B
你好,请问知道是什么问题了么
稍等,我再重新确认下这个问题
好的,谢谢,辛苦