【问题标题】:Sequence of offer/answer in WebRTC P2P mesh topologyWebRTC P2P 网状拓扑中的提议/答案序列
【发布时间】:2016-10-28 18:24:21
【问题描述】:

我正在使用 Web 套接字服务器(节点 JS)作为信号服务器。我想创建一个 P2P 网状网络 - 每个人都相互连接

在以下情况下操作/事件的顺序是什么:

  1. 第一个节点加入
  2. 后续节点加入

是否每个正在连接的对等方都向信令服务器发送要约,然后再发送给所有其他已连接的对等方?我不确定这是否是正确的方法。

【问题讨论】:

  • 据我所知,WebRTC 没有描述信号机制(在他们的教程中强调了这一点)。这取决于开发商,他将如何做到这一点。网格中的“所有人对所有人”的通信是用独立于技术的算法来描述的,但我想,你何时以及如何发送信息只是你的想法。你的想法并不复杂,看起来不错。

标签: javascript node.js webrtc signaling


【解决方案1】:

如果您尝试创建一个网状网络,音频和视频始终通过网状网络传输给每个人,那么我建议您重新考虑。让超过 3 或 4 个用户正常工作很难甚至不可能实现。有关不同网络拓扑的网络内容的说明,请参见此处:http://testrtc.com/different-multiparty-video-conferencing/

如果您尝试这样做以连接数据(非语音或视频),那么您可以这样做,但同样,您可以在单个浏览器中放置的对等连接数量是有限的,并且您添加的每个连接都会放一些开销。今天,我最多不会尝试超过 40 或 50。

根据您的问题,我假设所有客户端都将通过 WebSocket 连接到您的服务器。当您想将特定用户连接到另一个用户(或一小组用户)时,您可能最终会通过服务器路由消息并明智地创建对等连接。

对于小组场景,我会使用 SFU 模型 - 查看 Jitsi (https://jitsi.org/Projects/JitsiVideobridge) 和 Kurento (http://www.kurento.org/) 寻找可能的替代方案。

【讨论】:

    【解决方案2】:

    WebRTC 将客户端连接到客户端。如果您的客户至少连接到另一个 - 另一个可以有其他人的列表,因为其他人也有他们可能知道的尽可能多的其他人的列表。然后它传播得很快。列表中的拓扑由您决定。不需要发信号,因为与他人联系的信息在列表中。

    【讨论】:

    • 可以通过电子邮件发送信号。因此,至少一个对等点作为字符串预安装在对等点中也应该是可能的。
    猜你喜欢
    • 2017-06-17
    • 2010-10-26
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多