天天看点

websocket涉及ArrayBuffer、Uint8Array与python3字符串、二进制数据相互转换

很多websocket传输数据是ArrayBuffer形式,但是python中没有这数据类型,关于2者怎么转化我看网上讲的少记录下,方便大家少踩坑。

如下图t.data是websocket接收的ArrayBuffer数据,这些数据需要解码才能还原成字符串形式的,n就是解码出来的数据,但是解码函数很复杂,需要扣核心js用node来解码。python websocket接收的是二进制流数据,怎么把收到的二进制数据转成ArrayBuffer传给node解码是个问题,

websocket涉及ArrayBuffer、Uint8Array与python3字符串、二进制数据相互转换

方法如下,最后的e就是ArrayBuffer类型了:

websocket涉及ArrayBuffer、Uint8Array与python3字符串、二进制数据相互转换
websocket涉及ArrayBuffer、Uint8Array与python3字符串、二进制数据相互转换

网页发送数据是ArrayBuffer形式,

websocket涉及ArrayBuffer、Uint8Array与python3字符串、二进制数据相互转换

python中发送socket 的buffer数据如下。

websocket涉及ArrayBuffer、Uint8Array与python3字符串、二进制数据相互转换

还有就是js中ArrayBuffer、Uint8Array、ArrayBuffer的相互转化:

1. ArrayBuffer 和 Uint8Array 互转

websocket涉及ArrayBuffer、Uint8Array与python3字符串、二进制数据相互转换

2. Uint8Array 和 Array 互转

websocket涉及ArrayBuffer、Uint8Array与python3字符串、二进制数据相互转换

3. ArrayBuffer 和 Array互转

websocket涉及ArrayBuffer、Uint8Array与python3字符串、二进制数据相互转换

继续阅读