使用小程序建立websocket连接后,发送二进制数据,在移动端可以正常发送,但是在PC端的小程序会将二进制数据转为string传输(转为ascii对应的字符),除非二进制中有大于等于128的值。
var pingBuffer = new Uint8Array(1);
pingBuffer[0] = 0;
var socket = wx.connectSocket({ url: 'ws://xxx/' });
socket.onOpen(() => {
socket.send({ data: pingBuffer.buffer })
})
上述代码片段应该被后端正确识别为arrayBuffer,但是在PC小程序上发送的buffer被转为了string类型(值为0对应的ascii字符)。期望小程序不要自行强制转换类型,不然浪费资源不说,还容易引发异常。
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。