小程序
小游戏
企业微信
微信支付
扫描小程序码分享
onSocketClose是用于监听websocket连接断开事件的。但是我很好奇,在没有主动调用closeSocket而监听到websocket断开了的时候,为什么在这前面没有去自动调用closeSocket方法?至少是不是可以将websocket的一些状态重置一下,也不至于监听到了被动断开websocket时,还需要小程序开发者调用一下closeSocket,才能让websocket再次connect,否则会提示此连接还未关闭。
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你好,感谢反馈,在开发工具中websocket自动断开,未重置连接状态。我们会在后续版本中进行修复,敬请关注。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
是不是这个问题:
如果不显式的调tunnel.close(),是不会回调业务服务器端的onSocketClose()?
现在每隔一段时间会互相发ping pong,但如果客户端如果失联了,没法在服务器主动清理现场。
我这边发送到服务端的json数据也有时候会在最后面有乱码,但不会总有,是偶尔,我也很奇怪,好在这些乱码出现在json结束的大括号后面,不影响解析json数据
在使用websocket发送jason数据时,打印的日志中jason数据是完整的。但服务器收到的jason数据在最后几个字节却是乱码导致解析失败。用JMeter压测工具测试服务器发送同样的数据一致运行良好。不知是不是微信小程序的websocket实现在发送用户数据的时候进行了什么过滤或编码?
微信小程序端:
wx.sendSocketMessage({
data:msg
});
console.log('msg sent: ' + msg);//这里的信息是正常的
显示:{"TerminalType":2,"TerminalId":0,"TimeStamp":0,"RequestedTerminalId":1,"DataType":1}
服务器端(使用了rapidjson1.1.0):
服务器开始的时候正常,收几个包后就异常,接收的数据长度是对的,但信息却成了:
pay_load:{"TerminalType":2,"TerminalId":0,"TimeStamp":0,"RequestedTerminalId":1Bm▒D.▒\*▒_2
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
你好,感谢反馈,在开发工具中websocket自动断开,未重置连接状态。我们会在后续版本中进行修复,敬请关注。
是不是这个问题:
如果不显式的调tunnel.close(),是不会回调业务服务器端的onSocketClose()?
现在每隔一段时间会互相发ping pong,但如果客户端如果失联了,没法在服务器主动清理现场。
我这边发送到服务端的json数据也有时候会在最后面有乱码,但不会总有,是偶尔,我也很奇怪,好在这些乱码出现在json结束的大括号后面,不影响解析json数据
在使用websocket发送jason数据时,打印的日志中jason数据是完整的。但服务器收到的jason数据在最后几个字节却是乱码导致解析失败。用JMeter压测工具测试服务器发送同样的数据一致运行良好。不知是不是微信小程序的websocket实现在发送用户数据的时候进行了什么过滤或编码?
微信小程序端:
wx.sendSocketMessage({
data:msg
});
console.log('msg sent: ' + msg);//这里的信息是正常的
显示:{"TerminalType":2,"TerminalId":0,"TimeStamp":0,"RequestedTerminalId":1,"DataType":1}
服务器端(使用了rapidjson1.1.0):
服务器开始的时候正常,收几个包后就异常,接收的数据长度是对的,但信息却成了:
pay_load:{"TerminalType":2,"TerminalId":0,"TimeStamp":0,"RequestedTerminalId":1Bm▒D.▒\*▒_2