nodeJS视频流,当用户断开连接或移动到不同页面时,连接不会关闭
nodeJS video streaming, connection not closing when user disconnects or moved to different page
我正在nodeJS中使用express构建一个视频流服务器,并使用"请求进度"模块来获取进度状态。它(视频流)运行良好。
但问题是,即使在我关闭浏览器或移动到下一页后,服务器仍在流式传输数据。我可以在控制台上看到
以下是相同的代码:
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(){});
使用nodejs和Express 的视频流
node.js http服务器,检测客户端何时断开
Node.js服务器即使在客户端断开后仍保持流式数据
我的问题是:
1.如何调用"请求进度"的"error"或"end"函数
2.我将如何关闭流媒体
3.为什么选择console.log('Client closed the connection');
被呼叫两次
问题答案:
- 您可能可以使用从事件发出。EventEmitter
参考本示例
https://github.com/IndigoUnited/node-request-progress/blob/master/test/test.js
或者,您可以使用关闭功能中的最后进度状态。
-
不确定这里的问题是什么,进程将继续,直到套接字关闭。
-
如果您从浏览器(默认播放器)发出请求,它会发出两个请求。
相关文章:
- nodeJS视频流,当用户断开连接或移动到不同页面时,连接不会关闭
- Jquery 移动错误消息,当没有互联网连接加载谷歌地图
- Jquery移动检查时没有互联网连接显示错误消息,而不是加载谷歌地图
- 如何检查移动互联网连接
- 创建我的第一个移动应用程序并将其连接到数据库
- 优化移动/低速连接-全背景视频
- 如何将两个段落连接在一起以内联方式显示,而不会使文本移动
- jsPlumb连接没有相应地移动到元素位置
- 最初我连接到phonegap's数据库,但当我移动到第二个html页面时,我可以;t连接
- 谷歌分析移动应用程序日志显示已连接,但实时跟踪显示0个用户
- 将jQuery移动应用程序连接到服务器数据库,并在互联网连接关闭时打开弹出窗口
- 如何区分在同一列表中拖动和从一个列表移动到连接列表时的可排序更新事件
- 无法向移动设备发送推送通知-连接通知失败:80
- Node.js和Socket.IO从本地开发服务器移动到活动服务器,而不是连接
- jQuery可排序-将放置在外部的项目移动到连接列表
- 移动连接/断开事件
- 如何连接3个动态值文本框并将其移动到剪贴板
- 在断开连接的状态下运行(移动)web应用程序
- 每分钟使用jquery移动检查设备互联网连接
- 在 d3js 中移动连接的矩形