首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用oboe.js从gzipped资源中流式传输JSON

使用oboe.js从gzipped资源中流式传输JSON
EN

Stack Overflow用户
提问于 2019-01-22 23:02:20
回答 1查看 445关注 0票数 0

我将一些json数据作为gzipped文件存储在服务器上(以便减少传输的数据量,同时也减少服务器上的磁盘使用量)。

现在,我想在客户端(运行react/node的浏览器)解压缩和解析json数据。

我想,使用oboe.js可能是完成这项任务的合适选择。不幸的是,在浏览器中工作时,似乎不可能直接传递oboe流。我所依赖的解决方案是在解压数据块后将它们提供给双胞胎(请参阅本文底部的代码)。

虽然这确实有效,但如果节点侦听器需要一些时间来处理节点(当然,解析数据需要一些时间,但我希望应用程序保持响应,甚至可能根据已经处理的数据更新视图),浏览器会冻结一段时间。

我怀疑所有的数据基本上都是一次输入到双簧管,而不是等到最后一块数据被读取。这是正确的吗?有没有一种合适的方法来减慢输入到双簧管的数据量,或者有没有一种更直接的方法来处理gzip流和双管乐器?

代码语言:javascript
复制
var o = oboe();
var gunzip = zlib.createGunzip();

gunzip.on('data', (chunk) => o.emit('data', chunk.toString()))
      .on('end', o.emit('end'));

request(options).on('response', response => {
  o.emit('start', response.statusCode, response.headers);
  response.pipe(gunzip);
};

o.node('{name}', () => {
  //Do stuff with node
  return oboe.drop;
});
EN

回答 1

Stack Overflow用户

发布于 2019-01-23 00:26:36

似乎你不能正确使用管道功能(如速度调整),因为在第4-5行的“包装器”,只是删除它。

这是有关管道node.js的更多信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54311041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档