我只订阅许多发布者之一,一次订阅一个(视频监视器)。因此,我最初打开所有订阅者,并在触发onconnected事件时,将每个订阅者存储在哈希表中(stream.connection.data保留ID)。我先订阅,然后退订并订阅下一个。但是,我不得不杀死onconnected事件处理程序,因此它们没有多次触发: Tokbox streamCreated being called same number of times client is called
现在,当新的参与者迟到(在删除事件处理程序之后)加入会话时,我不知道如何订阅其流,因为没有事件触发。我知道他们已经连接并且正在流式传输,因为我从他们的应用程序中收到一条消息,其中包含其流的ID。
因此,我需要一种方法来遍历会话中的所有内容,找到新的对象,并在轮到该人时订阅它。如何获取会话中的所有流并查看其连接ID?
答案 0 :(得分:0)
此处是TokBox开发人员的传播者。
要了解客户端上的会话中的流数,我建议听以下会话事件:
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并收听相同的事件。