2017-11-07 7 views
2

전화를 끊는 데 사용되는 "전화 끊기"버튼이있는 사용자 인터페이스가 있습니다. "clientDisconnected :streamDestroyed 이벤트가 session.disconnect() 또는 브라우저 닫기에 의해 트리거되었는지 확인하는 방법

은"끊기 "버튼을 눌러 호출에서 다른 참가자가 문서에 따르면"clientDisconnected "

의 이유를 반환 streamDestroyed 이벤트를 수신 session.disconnect()를 호출에 session.disconnect()

호출 "- 클라이언트가 개체의 disconnect() 메서드를 호출하거나 브라우저를 닫음으로써 세션과의 연결이 끊어졌습니다.

이 두 시나리오를 구분해야 통화 참여자에게 다른 메시징을 제공 할 수 있습니다.

통화가 1) 명시 적으로 끊기 (전화 session.disconnect()) 또는 브라우저 닫기 2)로 종료되었는지 어떻게 알 수 있습니까?

답변

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! 
    } 
});