Событие LeftConversation для отключенных участников

Я использую шаблон быстрого запуска для разговоров с несколькими устройствами, и кажется, что обработчик события смены участника (participantsChanged) не срабатывает, когда участник отключается. Я ожидаю получить LeftConversation для участника, который закрывает окно своего браузера или теряет подключение к Интернету, но похоже, что событие запускается только тогда, когда участник решает отключиться.


person Streetlamp    schedule 16.03.2020    source источник


Ответы (1)


Событие SpeechSDK.ParticipantChangedReason.LeftConversation будет запущено немедленно, если участник чисто покинет беседу, нажав кнопку «Покинуть беседу».

Если участник покидает беседу другим способом, например, закрыв окно браузера или нажав кнопку «Назад» в браузере, в базовом веб-сокете будет немедленно запущено сообщение DisconnectSession. Это событие будет повышено до уровня SpeechSDK.ParticipantChangedReason.LeftConversation в течение 6 минут. Сообщение веб-сокета DisconnectSession в настоящее время не отображается как событие SDK в Javascript SDK.

В качестве обходного пути можно обновить код быстрого запуска, чтобы добавить прослушиватель для события браузера «до выгрузки» или «выгрузки», которое будет вызывать функцию выхода из беседы от имени участника.

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 ...
person Julia Kerr    schedule 17.03.2020
comment
А, это имеет смысл. Я предполагаю, что это для учета тех, кто повторно подключается в течение 6 минут. - person Streetlamp; 17.03.2020