WebRTC 通过带有 nodeJS express 和 socketio 的主机

WebRTC through host with nodeJS express and socketio

我创建了一个网络应用程序来让人们交流。我想实现屏幕共享和语音通话。

我当前的应用程序是用 NodeJs 编写的,使用 express 和 socket.io 来为客户端连接提供服务并打开套接字连接。我想流式传输视频和音频。我对 WebRTC 的问题是所有连接到呼叫的人都容易受到 DDoS 攻击,因为它是 p2p。我从 Discord 找到了一篇文章,解释了他们如何设法让所有流量都通过他们的服务器:https://blog.discord.com/how-discord-handles-two-and-half-million-concurrent-voice-users-using-webrtc-ce01c3187429,这正是我想要实现的目标。

我可以使用 socket.io-stream https://www.npmjs.com/package/socket.io-stream 吗?我还没有弄清楚如何,似乎所有 socket.io 流媒体库都是为文件 upload/download 制作的,而不是为实际的 video/audio 流媒体制作的。

如果这不起作用,像 Discord 设法制作的库将是完美的解决方案,因为所有流量都是代理的,而不是 p2p。虽然我找不到任何这些库,但也许我只是在寻找错误的东西? 最好的问候

您将要使用 SFU

每个对等体与SFU协商一个会话。然后他们通过它交换媒体。每个 Peer 将只与服务器通信。它还有很多其他好处,也是当今部署的大多数 WebRTC 使用的。

那里有很多开源 SFU。您甚至可以使用开源库构建自己的库。