在网络通信中,有时需要读取服务器发来的二进制数据,
本人的项目中,使用websocket,得到的这些二进制数据会被当作blob类型(在websocket的信息头中定义了数据类型为 0x2)
通常我们是可以把blob类型转化成别的类型的,但是都需要FileReader这个东西。比如
var reader = new FileReader();
var self = this;reader.onload = function (e) {self.onTraitMsg(reader.result);}
reader.readAsArrayBuffer(msg);
我在网上找了一阵子,有的人说微信小程序提供这个接口,有的人说不提供。
请问到底提不提供,如果不提供,有没有替代的方法?
应该是目前只实现了String/ArrayBuffer类型的处理。详情请参考文档。
小程序没有 File API 。onSocketMessage 可以是 ArrayBuffer ,你可以从这个角度做。
后端的数据,通过了zlib压缩后(数据量大),进行的base64编码。我拿到后转码再解压,然后用new Blob(但小程序又不支持,这怎么办),而且后面还需要用到file 的api来处理,这也不支持。这条路还能行得通吗?求朋友建议
LastLeaf 谢谢,之前是按普通的浏览器的websocket写的,没有注意到api的区别。
是不是只要换成微信的websocket的api,接收到的就一定是String或者ArrayBuffer类型的?