onSocketClose是用于监听websocket连接断开事件的。但是我很好奇,在没有主动调用closeSocket而监听到websocket断开了的时候,为什么在这前面没有去自动调用closeSocket方法?至少是不是可以将websocket的一些状态重置一下,也不至于监听到了被动断开websocket时,还需要小程序开发者调用一下closeSocket,才能让websocket再次connect,否则会提示此连接还未关闭。
在使用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