webrtc - 远程用户离开事件在 webrtc 视频中不起作用
问题描述
我想在用户离开房间或关闭浏览器时收到通知,然后我应该收到通知,因为我尝试了这 2 个功能,但它不起作用
pc.removestream= (event) => {
console.log("user removed");
}
stream.onremovetrack = ({track}) => {
console.log(`${track.kind} track was removed.`);
if (!stream.getTracks().length) {
console.log(`stream ${stream.id} emptied (effectively removed).`);
}
};
在这里,我已经为 webrtc 放置了我的整个代码,任何人都可以检查我的代码并帮助我解决这个问题吗?
pc.ontrack = ({track, streams: [stream]}) => {
stream.onremovetrack = ({track}) => {
console.log(`${track.kind} track was removed.`);
if (!stream.getTracks().length) {
console.log(`stream ${stream.id} emptied (effectively removed).`);
}
};
remoteVideo1.srcObject = stream;
};
pc.removestream= (event) => {
console.log("user removed");
}
解决方案
用户关闭浏览器相当于pc.close()
,而不是删除任何流或轨道。
检测这一点的最佳方法是创建一个数据通道并检查其关闭状态(小提琴):
const dc = pc.createDataChannel("", {negotiated: true, id: 0});
...
dc.onclose = () => console.log("user left");
在这种情况下,远程浏览器通过线路发送SCTP ABORT块,使其与网络丢弃区分开来。
推荐阅读
- android - 您将如何为不同的环境(测试、QA、生产)分发相同的移动应用程序?
- python - 如何在 php 中使用谷歌路由或工具,目前它使用 python
- php - 从 PHP 重启 apache
- git - Heroku:如果你在一个分支上开发并通过 git 部署,你必须运行:
- reactjs - 有没有一种简单的方法可以让父组件链接覆盖反应组件中的子组件链接?
- r - 如何用 R 中的相应向量替换数据框中的第四行值?
- r - 如何在 R 中对具有多个条件的列求和(快速版本)
- reverse-engineering - 用 Ollydbg 1.10 解压 WinUpack 0.39
- python - python日志上的一个奇怪的重复
- pandas - 删除连续重复的组