Tokbox streamCreated被调用相同次数,客户端被调用

时间:2018-11-20 13:34:31

标签: javascript webrtc opentok tokbox

我在会话期间多次一对一地调用客户端,并且主机上调用了streamCreated事件。挂断电话后,我退订,客户端也取消发布。但是,当我再次调用客户端时,streamCreated事件在主机端被调用了两次。我多次调用客户端3、4、5等,并且streamCreated事件触发的次数与调用客户端的次数相同。例如,在我第七次致电客户时,streamCreated被致电7次!尽管streamDestroyed被调用,但似乎并没有真正破坏流。

在客户端,我非常渴望尝试和取消发布:

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

在主机方面,我还尝试确保订阅者已被破坏:

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

问题是当我打开一个具有多个客户端的视频监视器,并让每个客户端发布时都没有音频。但是,我仍然可以听到我拜访的客户端……就像他们的原始流仍然存在一样。我在做什么错了?

1 个答案:

答案 0 :(得分:0)

每次拜访此人时,我都在使用:

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

因此,每次我调用一个客户端时,它都会创建一个新的事件处理程序。为解决此问题,我与客户端断开连接时添加了以下代码。

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

那杀死了事件处理程序,现在一切正常。