天天看點

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字元串、二進制資料互相轉換

繼續閱讀