使用pako.js解压服务端传来的gzip文件(火币api)
2018-09-10
7,938 views
2 min read
在接入火币api的时候发现,火币websocket中传输的数据均已经gzip压缩过,需要在客户端解压
这里使用pako.js解压,直接上代码
前端环境
//需要先引入pako.js
socket.onmessage = function (msg) {
if (msg.data instanceof Blob){
blob = msg.data;
let result = '';
let reader = new FileReader();
reader.readAsBinaryString(blob);
reader.onload = function() {
result = JSON.parse(pako.inflate(reader.result,{to:'string'}));
//打印出返回的数据
console.log(result);
}
}
}
由于传过来的是文件,需要用FileReader先读取出来。readAsBinaryString,使读出来的文件返回成BinaryString,再使用pako.inflate解压,第二个参数{to:'string'}
,让解压后返回字符串。
Node环境
//首先 npm install pako
var pako = require('pako');
connection.on('message', message => {
//这里message打印出来为object,message.type=binary.
result = JSON.parse(pako.inflate(message.binaryData, {to:'string'}));
}
这里只是简单的解压,详细的压缩解压请查询文档
Previous Post
Node.js中服务端和客户端的websocket应用
Next Post
Linux使用screen执行长时间运行的任务
Or you can contact me by Email