收藏
回答

PC小程序WebSocket发送二进制数据被转为string

使用小程序建立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字符)。期望小程序不要自行强制转换类型,不然浪费资源不说,还容易引发异常。

回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容