Expressを使ってnodeJSにビデオストリーミングサーバーを構築し、進行状況を取得するために「要求進行」モジュールを使用しています。 これはうまく動作しています(ビデオストリーミング)。
しかし、問題は、ブラウザを閉じたり、次のページに移動しても、サーバーはまだデータをストリーミングしていることです。私はコンソールでそれを見ることができます。
nodeJSビデオストリーミング、接続が切断されたり、別のページに移動したときに接続が閉じない
ここでは、そのためのコードです:
app.route('/media/*').get(function (req, res) {
var originalUrl = "http://myactualserver.com";
var resourceUrl = originalUrl.split('media');
var requestURL = BASE_URL + resourceUrl[1];
req.on('close', function() {
console.log('Client closed the connection');
});
var options = {};
progress(request(requestURL), {
throttle: 1000,
delay: 0,
lengthHeader: 'content-length',
})
.on('progress', function (state) {
console.log('progress', state);
})
.on('error', function (err) {
console.log('err');
})
.on('end', function() {
console.log('end');
})
.pipe(res);
});
私は次のポストを試してみましたが、最終的には
req.on("close", function(){});
Video Streaming with nodejs and Express
node.js http server, detect when clients disconnect
を追加しましたNode.js server keeps streaming data even after client disconnected
私の質問は:「エラー」または「要求進行中」の「終わり」の機能のいずれかを呼び出しますどのように
1.?
2.ストリーミングをどのように閉じますか?
なぜconsole.log('Client closed the connection');
が2回呼び出されるのですか?ご質問