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

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

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

websocket涉及ArrayBuffer、Uint8Array与python3字符串、二进制数据相互转换_第1张图片

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

 

网页发送数据是ArrayBuffer形式,

websocket涉及ArrayBuffer、Uint8Array与python3字符串、二进制数据相互转换_第2张图片

python中发送socket数据用list转下就行。

websocket涉及ArrayBuffer、Uint8Array与python3字符串、二进制数据相互转换_第3张图片

 

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

1. ArrayBuffer 和 Uint8Array 互转

websocket涉及ArrayBuffer、Uint8Array与python3字符串、二进制数据相互转换_第4张图片

2. Uint8Array 和 Array 互转

websocket涉及ArrayBuffer、Uint8Array与python3字符串、二进制数据相互转换_第5张图片

3. ArrayBuffer 和 ArrayBuffer互转

websocket涉及ArrayBuffer、Uint8Array与python3字符串、二进制数据相互转换_第6张图片

 

你可能感兴趣的:(websocket)