Отправка и получение JSON в потоках Node HTTP2 - PullRequest
0 голосов
/ 16 октября 2018

Я работаю над созданием микросервиса аутентификации в Node с использованием HTTP2.

Как правильно написать JSON и прочитать его из потоков HTTP2 узла?

В документации приведены следующие примеры:

const http2 = require('http2');
const fs = require('fs');

const server = http2.createSecureServer({
  key: fs.readFileSync('localhost-privkey.pem'),
  cert: fs.readFileSync('localhost-cert.pem')
});
server.on('error', (err) => console.error(err));

server.on('stream', (stream, headers) => {
  // stream is a Duplex
  stream.respond({
    'content-type': 'text/html',
    ':status': 200
  });
  stream.end('<h1>Hello World</h1>');
});

server.listen(8443);

и

const http2 = require('http2');
const fs = require('fs');
const client = http2.connect('https://localhost:8443', {
  ca: fs.readFileSync('localhost-cert.pem')
});
client.on('error', (err) => console.error(err));

const req = client.request({ ':path': '/' });

req.on('response', (headers, flags) => {
  for (const name in headers) {
    console.log(`${name}: ${headers[name]}`);
  }
});

req.setEncoding('utf8');
let data = '';
req.on('data', (chunk) => { data += chunk; });
req.on('end', () => {
  console.log(`\n${data}`);
  client.close();
});
req.end();

Допустим, у меня есть объект JSON, который я хочу записать в поток на клиенте и прочитать из потока на сервере, и наоборот.Как мне сделать это правильно?

Я могу преобразовать свои JSON в str и использовать request.write(str, 'utf-8), но является ли это оптимальным способом?И как мне слушать JSON с другой стороны, чтобы справиться с этим?

...