#OpenTok, как перечислять потоки в сеансе? - PullRequest
0 голосов
/ 27 декабря 2018

Я подписываюсь только на одного из множества издателей, по одному (видеомонитор).Итак, я изначально открываю всех подписчиков, и когда происходит событие onconnected, я сохраняю каждого из них в хэш-таблице (stream.connection.data содержит идентификатор).Я подписываюсь на первое, потом отписываюсь и подписываюсь на следующее.Однако мне пришлось убить обработчик событий onconnected, чтобы они не запускались несколько раз: Tokbox streamCreated вызывается одинаковое количество раз, когда клиент вызывается

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

Итак, мне нужен способ перебрать все потоки в сеансе, найти новыйи подпишитесь на него, когда придет очередь этого человека.Как я могу получить все потоки в сеансе и посмотреть их идентификаторы соединения?

1 Ответ

0 голосов
/ 01 января 2019

TokBox Developer Evangelist здесь.

Чтобы узнать количество потоков в сеансе на стороне клиента , я рекомендую прослушать следующие события сеанса:

  • streamCreated - срабатывает, когда кто-то начинает публикацию в сеансе
  • streamDestroyed - срабатывает, когда кто-то прекращает публикацию в сеансе.

Я бы создал объект, как показано нижевести запись всех потоков в сеансе:

const streams = {};
session.on({
  streamCreated: event => {
    streams[event.stream.streamId] = event.stream;
  },
  streamDestroyed: event => {
    delete streams[event.stream.streamId];
  },
};

Это позволит вам получить доступ к объекту потока и подписаться так:

const stream = streams['f39c6-ae02-100c-9727-b3bf2']; // please note that this is a random stream Id
const subscriber = session.subscribe(stream);

Если вы хотите знатьколичество потоков в сеансе на стороне сервера , вы можете использовать Session Monitoring и прослушивать одни и те же события.

...