WebRTC(Web Real-Time Communication)是一个开放的实时通信技术,允许网页浏览器和移动应用程序在无需插件的情况下进行点对点的音频、视频通话和数据共享。
WebRTC的主要组成部分包括:
-
媒体捕获层:通过
getUserMedia()API访问用户的摄像头和麦克风。 -
媒体处理层:包含编解码器、回声消除、噪声抑制等音频/视频处理功能。
-
传输层:基于UDP的SRTP(安全实时传输协议)和SCTP(流控制传输协议),确保数据的安全传输。
-
信令层:负责建立和维护通信会话,包括会话初始化、媒体协商、网络地址协商等。需要开发者自行实现,通常使用WebSocket或HTTP。
-
P2P网络层:包含ICE(交互式连接建立)、STUN(会话遍历实用工具)和TURN(中继遍历实用工具),用于在NAT和防火墙环境中建立点对点连接。
-
API层:提供给开发者使用的JavaScript API,包括
RTCPeerConnection、RTCSessionDescription、RTCIceCandidate等。