Я использую клиентский SDK OpenTok для Интернета, и у меня возникают некоторые проблемы при повторном подключении сеанса, если он не может автоматически переподключиться; некоторые затянувшиеся соединения сокетов, кажется, остаются не закрытыми должным образом.
Я имитирую отключение сети, и функция автоматического повторного подключения работает отлично: клиент пытается повторно подключиться в течение примерно 30 секунд и преуспевает, если клиент восстанавливает сетевое подключение.
Но если клиент не может повторно подключиться, отправляется событие sessionDisconnected
. В этом случае я все еще хочу повторно подключиться к сеансу и пытаюсь сделать это вручную, поэтому я делаю все заново - обратите внимание на псевдокод:
// 1st I hide my OTPublisher element (I'm using opentok-react) so it's cleaned up properly
session = OT.initSession(apiKey, sessionId);
session.on(myEventHandlers);
session.connect(...);
// Finally show my OTPublisher again
Это работает нормально, издатель снова начинает публикацию, НО затем я вижу, что мои обработчики событий sessionReconnecting
и sessionReconnected
продолжают вызываться, так что это означает, что эти события отправляются снова и снова. Я также вижу предупреждение OpenTok:ReconnectableSocket
и боюсь, что некоторые вещи не очищаются должным образом:
Итак, каким должен быть правильный способ очистки сеанса по событию sessionDisconnected
, чтобы клиент мог снова подключиться к нему?