關於前端使用Protobufjs解析後端傳來的Protobuf出現非法buffer錯誤的解決方法

直接說緣由吧~前端

protobuf.decode()接收的數據必要是Unit8Array的數據。因此前端接收到arrayBuffer時候須要進行轉換成Unit8Array。下面列出轉換方法,很是簡單bash

//接收到的數據
let data=data
//進行Unit8Array轉換
let Udata=new Unit8Array(data);protobuf.load('./index.proto')
.then(
    (root)=>{
        let message=root.lookupType('Message.center');
        //解析數據
        return message.decode(Udata);
    }
)
.catch(
    (err)=>{
        throw err;
    }
)複製代碼
相關文章
相關標籤/搜索