Javascript Tokbox streamCreated被调用的次数与客户端调用的次数相同

Javascript Tokbox streamCreated被调用的次数与客户端调用的次数相同,javascript,webrtc,opentok,tokbox,Javascript,Webrtc,Opentok,Tokbox,我在一个会话中多次一对一地调用客户机,streamCreated事件在主机上被调用。当我挂断电话时,我将取消订阅,客户端将取消发布。但是,当我再次调用客户机时,streamCreated事件在主机端被调用两次。我调用客户机3、4、5等的次数更多,streamCreated事件触发的次数与我调用客户机的次数相同。例如,在我第7次调用客户端时,streamCreated被调用了7次!虽然调用了streamdestrocted,但似乎我并没有真正销毁流 在客户端,我迫不及待地尝试并取消发布: clie

我在一个会话中多次一对一地调用客户机,
streamCreated
事件在主机上被调用。当我挂断电话时,我将取消订阅,客户端将取消发布。但是,当我再次调用客户机时,
streamCreated
事件在主机端被调用两次。我调用客户机3、4、5等的次数更多,
streamCreated
事件触发的次数与我调用客户机的次数相同。例如,在我第7次调用客户端时,
streamCreated
被调用了7次!虽然调用了
streamdestrocted
,但似乎我并没有真正销毁流

在客户端,我迫不及待地尝试并取消发布:

clientSession.unpublish(clientPublisher, handleError);
clientPublisher.stream.destroy();
clientPublisher.destroy();
clientPublisher = null;
在主机端,我还尝试确保订户已被销毁:

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

问题是当我打开一个有多个客户端的视频监视器时,每个客户端都在没有音频的情况下发布。然而,我仍然能听到我拜访的客户。。。像他们的原始流仍然存在。我做错了什么?

每次我拜访对方时,我都在使用:

clientSession.on('streamCreated', function (event) {
clientSubscriber = clientSession.subscribe(event.stream, vid, {
...   
因此,每次我调用客户机时,它都会创建一个新的事件处理程序。为了纠正这个问题,我在断开与客户端的连接时添加了以下代码

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

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

TokBox开发者福音传道者。我知道您找到了解决方案,但我想确认,当您“挂断”时,两个流都被破坏了?如果您仅取消发布一个流,则另一个流可能仍在发布,除非您也明确取消发布另一个流。这是正确的,我正在取消发布两个流。谢谢你的检查。