如何取消订阅除当前用户和发布者之外的所有用户的视频

how to unsubscribe the video from all users except from current user and publisher

最初有一个 public 房间,用户订阅或加入 public 房间,然后每个订阅者都可以选择 "make it private"。

一旦任何订阅者点击 "make it private" 选项,其余所有订阅者将与浏览器断开连接,但会与房间创建者或发布者连接。

但在其他订阅者上,他们将无法显示点击设为私人选项的人。因为此人与其他订阅者屏幕断开连接并且仅显示在发布者屏幕上。

所以点击"make it private"的人可以一对一聊天。我指的是点击 "make it private" 选项和发布者的人。

但是在发布者屏幕上应该显示所有用户屏幕。

  function makeItPrivate() {
for (var i = 0 ; i < subscriberEvent.length; i++) {
  if (session.connection.id != subscriberEvent[i].connection.connectionId) {
    if (subscriberEvent[0].connection.connectionId !=  subscriberEvent[i].connection.connectionId) {
      session.forceUnpublish(stream);
    }
  }
}

}

您可以断开其他用户与会话的连接或让他们取消发布流,但不能让他们取消订阅已发布的流。唯一的办法是,如果其中一个订阅者想与创作者私下聊天,他应该向所有客户端发送信号,在收到信号后,他们应该停止订阅并在他们仍在会话时发布到会话连接的。

假设有 3 个用户,User1 是创建者,User2 和 User3 是订阅者。如果 User2 想要私人聊天,那么他应该向所有客户端发送信号。您可以看到信号是如何从 here 发送的。然后在收到信号后,User3 将取消订阅并取消发布会话。