У меня есть клиент, который использует дуплексный поток для отправки полезной нагрузки (как запрос HTTP2 POST) на сервер. После stream.end () сервер отвечает обратно. Теперь, когда я не закрыл поток, я хочу использовать этот поток для отправки другой полезной нагрузки (как запрос POST http2) на сервер, скажем, через минуту.
Q1) Как сохранить запись в свой поток после stream.end (). (Я знаю, что могу создавать новый поток каждый раз ... но это будет неэффективно, и, поскольку я работаю над сетью, я хочу, чтобы этот поток оставался открытым для отправки полезной нагрузки, как только он станет доступен.
Q2) Если мы не можем использовать поток после stream.end (), какова разница между stream.end () и stream.close () (да, я прочитал документацию, что close изящно закрывает поток .. но я не вижу никакой практической причины ... я действительно запутался здесь.)
вот мой код клиента:
const h2=require('http2');
const packet=require('./requestPacket.json');
const client=h2.connect('http://localhost:3000');
client.on('error', (err)=>{throw err});
const req=client.request({
':path': "/nsmf-pdusession/v1/sm-contexts",
':method': 'POST',
'content-type': 'application/json'
})
req.setEncoding('utf8');
req.on('error', (err)=>{throw err});
req.end(JSON.stringify(packet)); //sending request
req.on('response', (headers)=>{
console.log('response received:')
let data=''
req.on('data', (buffer)=>{data+=buffer})
req.on('end', ()=>{
console.log('data received') //receiving response
})
//now I want to send another request how to do it? help !
});
Заранее спасибо!