我从 WebRTC 开始,这主要是一个设计问题。寻找两种竞争方法的优缺点。
语境
我正在创建一个将视频流式传输到多个客户端的媒体服务器。每个客户端都可以请求一个或多个视频流以在浏览器页面中查看,然后关闭这些视频流并请求其他视频流,依此类推。单个客户端可能一次有几个小时或几天的持久连接,可以随意打开和关闭不同的流。
问题
如何管理与客户端的对等连接?
考虑的方法
- 每个(客户端,视频流)对都有自己的对等连接。因此,如果客户端正在查看 5 个视频流,则该网页将有 5 个对等连接。每个对等连接都有一个轨道。这涉及每次客户端采取行动查看/关闭视频流时创建/销毁对等连接。
- 每个(客户端)都有一个对等连接。基于客户端的操作,我们要么添加轨道,要么从对等连接中删除轨道。只要客户端在我们的网页上,单一连接就会一直存在。
从表面上看,选项 2 似乎不那么“浪费”,因为只有一个连接,但是阅读 WebRTC 信号,添加/删除曲目的行为会触发新一轮的提议/答案,所以我不确定它实际上更多高效的。此外,它似乎更难管理和实施,因为它更有状态,例如,确保在不再使用时正确清理轨道。
谢谢。