WebRTC是一种用于浏览器之间实时通信的开放标准。Erizo是一个基于WebRTC的开源媒体服务器,用于处理多个客户端之间的实时多媒体流。
Erizo与客户端之间的通信涉及到ICE(Interactive Connectivity Establishment)流程以及数据流的收发。在本文中,我们将介绍Erizo与每个客户端之间的ICE流程,以及如何进行数据流的收发。
ICE流程的主要目的是帮助两个终端之间建立对等连接,以便它们可以安全地交换媒体数据。Erizo充当媒体服务器,通过它来转发媒体数据。以下是Erizo与WebRTC客户端之间的ICE流程:
- 客户端向Erizo发送连接请求。
- Erizo接收连接请求,并生成本地ICE候选者(candidates)。这些候选者是用于描述客户端的网络地址信息的。Erizo还将这些候选者发送给客户端。
- 客户端接收到Erizo发送的候选者,并开始生成自己的本地候选者。
- 客户端将自己的候选者发送给Erizo。
- Erizo收到客户端发送的候选者,并将其转发给其他客户端。
- Erizo与每个客户端之间的候选者交换会继续进行,直到所有客户端都知道彼此的候选者。
- 客户端之间开始通过ICE协商选择最佳的候选者对建立对等连接。
- Erizo将媒体流从一个客户端转发到另一个客户端。
在Erizo与客户端之间建立了对等连接后,数据流的收发就可以开始了。以