webrtc整个功能要实现离不开客户端与服务器的配合,整个流程图就包括了客户端、信令服务器、ICE服务、Turn服务,在google开源的Coturn服务就是集合了ICE服务、Turn服务的功能。
具体流程图如下:
详细步骤描述(笔者用的是websocket服务,可以根据自己的实际情况选择不同的技术实现,只要把端的信息转发到另一端就行)
1. 客户端1连接信令服务器,建立websocket连接
2. 客户端2连接信令服务器,建立websocket连接
3.客户端1创建Offer,设置到本地媒体描述后,通过信令服务器转发给客户端2 (Offer为音视频的编码格式等)
4.客户端2将受到的客户端1的Offer,首先将Offer保存到客户端2的远端媒体描述,并且创建本地媒体描述同时也设置到本地媒体描述后,转发本地描述Answer(Answer为音视频的编码格式等)
5.客户端1接收到客户端2的Answer,这时双方就有自己跟远端的媒体描述, 取音视频编码的交集后,就确认了双方的一种音视频通话的编码格式
6.客户端1、客户端2跟coturn服务进行ICE收集 ( 本地IP, NAT IP, relay coturn服务的IP )
7.逐个尝试找到可以连通的一个ICE路径
8.客户端1、客户端2相互发送远端流,并播放接收到的远端流(音视频通话建立成功)