我的用户界面带有“挂断”按钮,用于结束通话。
“挂断”按钮调用session.disconnect()
在呼叫session.disconnect()
时,呼叫中的其他参与者侦听streamDestroyed
事件,该事件返回“clientDisconnected”的原因
根据文件:
“clientDisconnected” - 通过调用disconnect()
对象的Session
方法或关闭浏览器,客户端与会话断开连接。
事情是,我需要区分这两种情况,以便我可以向呼叫参与者提供不同的消息。
如何通过明确挂断(调用session.disconnect()
)或2)关闭浏览器来判断呼叫是否结束?
答案 0 :(得分:1)
唯一的原因是“networkDisconnected”意味着另一个参与者丢失了他们的互联网连接,并且“forceDisconnected”意味着参与者使用session.forceDisconnect()强行断开连接。这些都不是你想要的。
如果您在挂断之前向会话中的每个人发送信号,您可以自己跟踪挂断。然后在接收方跟踪是否有人发送了挂断信号。即。
// On the hangup side
function hangup() {
session.signal({type: 'hangup'}, function() {
session.disconnect();
});
}
// On the receiving side...
var hangups = {};
session.on('signal:hangup', function(event) {
hangups[event.from.connectionId] = true;
});
session.on('streamDestroyed', function(event) {
if (hangups[event.stream.connection.connectionId] === true) {
// They pressed the hangup button!
}
});