Как получить данные http2 serverpush в angular 7? - PullRequest
0 голосов
/ 25 апреля 2019

Я реализовал приложение узла для отправки живых данных клиенту, используя push-запрос сервера http2 вместо связи через сокет.

Я настроил клиентское приложение узла для получения данных http2-serverpush, но я хочу реализовать то же самоев angular7.

пример серверного приложения:

const port = 3000
const spdy = require('spdy')
const express = require('express')
const path = require('path')
const fs = require('fs')

const app = express();
app.get('*', (req, res) => {
  var stream = res.push('/', {
    status: 200, // optional
    method: 'GET', // optional
    request: {
      accept: '*/*'
    },
    response: {
      'content-type': 'application/javascript'
    }
  });
  stream.on('error', function() {
  });
  stream.end('hello from push stream!');
}
spdy
  .createServer(options, app)
  .listen(port, (error) => {
    if (error) {
      console.error(error)
      return process.exit(1)
    } else {
      console.log('Listening on port: ' + port + '.')
    }
  })

пример клиентского приложения:

const fs = require('fs')
const spdy = require('spdy')
var https = require('https');
var agent = spdy.createAgent({
    ca: fs.readFileSync('./localhost-cert.pem'),
    // host: 'https://localhost:3000',
    port: 4000
});
console.time('someFunction');

var req = https.get({
  host: 'https://localhost:4000/',
  agent: agent
}, function(response) {
});
req.on('push', function(stream) {
  stream.on('error', function(err) {
  // Handle error
  });
  stream.on('data',(data)=>{
    console.log('data',data.toString());
  })
  // Read data from stream
});

И я хочу знать, как получать данные чанка в угловых 7

пример кода:

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

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

req.on('data', (chunk) => { console.log(chunk)});
...