Событие LeftConversation для отключенных участников - PullRequest
0 голосов
/ 16 марта 2020

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

1 Ответ

3 голосов
/ 17 марта 2020

Событие 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 ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...