Я реализовал приложение узла для отправки живых данных клиенту, используя 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)});