Событие SpeechSDK.ParticipantChangedReason.LeftConversation
будет инициировано немедленно, если участник чисто покидает беседу, нажав кнопку «Выйти из беседы».
Если участник покидает беседу другим способом, таким как закрытие окна браузера или щелкнув кнопку «Назад» браузера, в базовом веб-сокете будет немедленно выведено сообщение «DisconnectSession». Это будет повышено до SpeechSDK.ParticipantChangedReason.LeftConversation
события в течение 6 минут. Сообщение «DisconnectSession» websocket в настоящее время не отображается как событие SDK в Javascript SDK.
В качестве обходного пути, одна из возможностей - обновить код быстрого запуска, добавив прослушиватель для браузера «beforeunload», или Событие 'unload', которое вызовет функцию выхода из разговора от имени участника.
https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event https://developer.mozilla.org/en-US/docs/Web/API/Window/unload_event
пример кода:
document.addEventListener("DOMContentLoaded", function () {
// ... existing variable declarations
window.addEventListener('beforeunload', (event) => {
// Call LeaveConversation on the participant's behalf
handleLeaveConversation();
// Cancel the event as stated by the standard.
event.preventDefault();
// Chrome requires returnValue to be set.
event.returnValue = '';
});
// existing code ...