有人知道 tinychat、omegle、cam4、chatroulette 等网站背后的系统架构是什么样的吗?每个连接需要多少带宽?
如果我没记错的话,他们使用了一些视频流服务器,比如 Flash Media Server、Wowza Media Server、Red5、Erlyvideo,但这会占用 20'000 个用户大约 1 Gb/s 的带宽?或者他们使用了一些正在运行 peer2peer 的软件?我找到了一些这样的软件,但它们都需要打开一些 UDP 端口。
有人知道使用上述服务器软件的 1 个服务器实例可以处理多少个用户吗?
我很高兴得到任何背景信息。
答案1
至少 chatroulette 使用 RTMFP 和 stratus 将视频从客户端推送到客户端,而无需将其传递到服务器(不会占用大量带宽)。得益于打洞技术,这可以通过大多数简单的家庭网络实现。
会话设置和元数据通过服务器传递,但这只是简单的消息传递,如今几乎任何技术都可以实现。据我所知,他们使用 FMS 来实现这一点。
看http://labs.adobe.com/technologies/stratus/和http://blogs.adobe.com/collabmethods/2008/12/try_rtmfp_and_clienttoclient_d.html
大致流程如下:
- 用户启动浏览器访问该网站
- Flash 客户端连接到服务器(到服务器的出站连接,可以是 rtmp 或任何其他协议)
- Flash 客户端通过 stratus api 获得超出内置策略的特殊连接权限
- Flash 客户端与对方客户端同时执行 UDP 打洞。建立直接 UDP 链接并交换音频/视频数据
我必须进行一些研究才能弄清楚他们如何进行后备,但最有可能的是,这是一个简单的服务器数据中继,附带吞吐量要求。
答案2
我相信聊天轮盘使用点对点功能,我认为这确实会减少您所需的带宽,但除此之外,我没有其他选择!抱歉 :)