我正在使用网络套接字服务器( Node JS)作为信号服务器。我想创建一个 P2P 网状网络 - 每个人都相互连接。
在以下情况下操作/事件的顺序是什么:
是否每个连接对等点都向信令服务器发送要约,然后再发送到所有其他连接对等点?我不确定这是否是正确的方法。
最佳答案
如果您想要做的是创建一个网状网络,音频和视频始终通过网状网络流向每个人,那么我建议重新考虑。让超过 3 或 4 个用户正常工作是很难甚至不可能实现的。有关不同网络拓扑的网络情况的说明,请参见此处:http://testrtc.com/different-multiparty-video-conferencing/
如果您尝试这样做以连接数据(非语音或视频),那么您可以这样做,但同样,您可以在单个浏览器中放置的对等连接数量是有限的,并且您添加的每个连接都会产生一些开销。今天,我最多不会尝试超过 40 或 50。
根据您的问题,我假设所有客户端都将通过 WebSocket 连接到您的服务器。当您希望将特定用户连接到另一个用户或一小组用户时,您可能最终会通过服务器路由消息并明智地创建对等连接。
对于组场景,我将使用 SFU 模型 - 查看 Jitsi ( https://jitsi.org/Projects/JitsiVideobridge ) 和 Kurento ( http://www.kurento.org/ ) 以获取可能的替代方案。
关于javascript - WebRTC P2P 网状拓扑中的提供/应答序列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40311083/