【发布时间】:2019-08-06 08:48:31
【问题描述】:
我正在尝试读取 http/2 推送流,但下面的代码失败并出现错误。当我在 Chrome 浏览器中使用相同的 URL 时,我会收到流服务器生成的“心跳”,并且也可以看到传入的数据。任何指针?我的目标只是读取服务器生成的所有 JSON 推送响应。
Error:
{ Error [ERR_HTTP2_ERROR]: Protocol error
at Http2Session.onSessionInternalError [as error] (internal/http2/core.js:637:26)
code: 'ERR_HTTP2_ERROR',
name: 'Error [ERR_HTTP2_ERROR]',
errno: -505 }
Node.JS 代码:
const http2 = require('http2');
const client = http2.connect('http://api.service.com/absolute/path/subscribe?api_key={key}');
const req = client.request();
req.setEncoding('utf8');
req.on('response', (headers, flags) => {
console.log(headers);
});
let data = '';
req.on('data', (d) => data += d);
req.on('end', () => {
console.log('end');
console.log(data);
client.destroy()
});
req.end();
旁注:我是 Node.js 新手,http/2 推送流对我来说也是一个新话题,所以请考虑我是初学者,正在为此苦苦挣扎。
【问题讨论】: