Определение, если удаленный абонент временно отключен - PullRequest
0 голосов
/ 15 сентября 2018

Это в контексте переподключения.Как модератор я хочу знать, когда удаленный подписчик (клиентский подписчик потока, который я публикую) временно отключает свое соединение.

Во-первых, события отключения абонента, повторного подключения и повторного подключения отправляются локально на удаленную сторону, то есть парень, который теряет соединение.Издатель не получает никаких событий об удаленном соединении, которое теряется.

Во-вторых, я попытался использовать JS-сеть «signal» JS, а также сервер JDK.Идея состояла в том, чтобы получить ошибку при отправке сигнала «временно» отключенному клиенту, но все, что я получил, - это успешные ответы для обоих серверов: я получаю код состояния 204.Поэтому я понимаю, что сигналы отправляются в очередь и отправляются при повторном подключении удаленного клиента.

До сих пор я не нашел способа определить от подключенного клиента, когда другой клиент теряет соединение, временно переходя в состояние «переподключения».

Сигнальный API отправляет сообщение об ошибке только тогда, когда клиент полностью отключен от сеанса, а не временно отключен.

Я знаю, что может имитировать это с помощью сигналов и тайм-аутов, но для этого мне нужно, чтобы сервердоверяйте моему клиенту, и мне действительно нужно проверить это на стороне сервера, иначе это будет «взломано».

Спасибо.

1 Ответ

0 голосов
/ 17 сентября 2018

Евангелист разработчиков TokBox здесь.

Когда какой-либо клиент теряет соединение, событие connectionDestroyed отправляется всем клиентам, включая клиента, который потерял соединение. Существует также объект Connection Event, который включает в себя свойство reason и Connection, которое отправляется вместе с событием.

Причина события разрушения соединения зависит от того, вызвал ли клиент метод disconnect для объекта Session, был принудительно отключен или отключен из-за состояния сети. В случае временного разрыва соединения с клиентом событие connectionDestroyed сработает со свойством reason данных события, установленным на networkDisconnected.

Что касается очереди signal, то по умолчанию все сигналы, которые вы отправляете, когда клиент временно отключен от сеанса, ставятся в очередь и отправляются, когда (и если) он успешно переподключается. Вы можете установить для свойства retryAfterReconnect значение false в options, который вы передаете методу Session.signal(), чтобы не ставить сигналы в очередь, пока клиент отключен.

Для получения дополнительной информации об автоматическом переподключении, пожалуйста, посетите: https://tokbox.com/developer/guides/connect-session/js/#automatic_reconnection

...