WebRTC:WebRTC,即网页实时通信(Web Realtime Communication),使网页仅仅需要通过javascript,借助浏览器实现实时通讯的功能,而在此功能上可以进一步扩展实现更加丰富的功能,比如基于该实时通讯实现多媒体文件的实时传输,从而不需要插件便可以实时播放视频,或者进行视频通话等等。
下图是WebRTC的架构图,从图中可以看出,整个WebRTC的架构分为3层,其中蓝色实现部分和蓝色虚线部分是面向浏览器开发商的,对于Web应用开发者来说,最重要的部分,也是直接使用的部分,便是途中紫色部分:Web API。
开发着可以通过调用相应的WebAPI实现即时通信的功能,而不需要对浏览器甚至操作系统的实现有所了解。
其中主要使用的WebRTC API有3个:
(1)MediaStream API,用于封装媒体数据流,包括视频流和音频流,当然视频流可以来自本地视频或者摄像头;
(2)RTCPeerConnection API,用于建立实时对等连接的API,以便在端点之间传输音视频数据;
(3)RTCDataChannel API, 简述数据通路的API,用于在终端之间传输数据;
在W3C发布统一的标准之前,同一API在不同的浏览器中略有不同,比如Chrome的webkit内核中的API是webkitRTCPeerConnection,在Firefox中的API名为mozRTCPeerConnection。
当然,在这些基础的API基础上,一些个人或组织对其进行了封装或者扩展,使其更加易于使用并且扩展功能更加丰富,比如:
webRTC.io: https://github.com/webRTC/webRTC.io
SimpleWebRTC: https://github.com/HenrikJoreteg/SimpleWebRTC
WebRTC-Experiment: https://github.com/muaz-khan/WebRTC-Experiment
使用封装好的js可以更容易的入门WebRtC,但是若想更好的理解WebRTC的工作原理,还是应该尝试使用基本的API。