Tokbox streamCreated вызывается столько же раз, сколько вызывается клиент - PullRequest
0 голосов
/ 20 ноября 2018

Я звоню клиенту один-на-один несколько раз во время сеанса, и на хосте вызывается событие streamCreated.Когда я вешаю трубку, я отписываюсь, и клиент отменяет публикацию.Однако, когда я снова вызываю клиента, событие streamCreated вызывается дважды на стороне хоста.Я звоню клиенту 3, 4, 5 и т. Д. Несколько раз, и событие streamCreated срабатывает столько же раз, сколько я звонил клиенту.Например, в 7-й раз я звоню клиенту, streamCreated вызывается 7 раз!Похоже, я на самом деле не уничтожаю потоки, хотя вызывается streamDestroyed.

На стороне клиента я был достаточно отчаянным, чтобы попытаться отменить публикацию:

clientSession.unpublish(clientPublisher, handleError);
clientPublisher.stream.destroy();
clientPublisher.destroy();
clientPublisher = null;

Нана стороне хоста, я также пытался убедиться, что подписчик был уничтожен:

clientSession.unsubscribe(clientSubscriber);
clientSubscriber.destroy();
clientSubscriber = null;

Проблема в том, что когда я открываю видеомонитор с несколькими клиентами и каждый клиент публикует их без звука.Тем не менее, я все еще слышу клиента, которого я вызывал ... как будто его первоначальный поток (ы) все еще существует.Что я делаю не так?

1 Ответ

0 голосов
/ 22 ноября 2018

Каждый раз, когда я звонил этому человеку, я использовал:

clientSession.on('streamCreated', function (event) {
clientSubscriber = clientSession.subscribe(event.stream, vid, {
...   

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

clientSession.unsubscribe(clientSubscriber);
clientSession.off();

Это убило обработчик событий, и теперь все работает правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...