WebRTC 是一个支持网络浏览器进行实时语音对话或视频对话的软件架构。
《Learning WebRTC 中文版》使用形象的案例介绍,逐步深入地阐述了WebRTC 的幕后工作原理。通过阅读本书,读者可以快速、有效地掌握创建一个WebRTC 应用所必需的知识,包括获取用户设备信息、创建WebRTC 应用的客户端和服务器、连接用户并发送数据、文件共享、数据信息安全和性能优化。
《Learning WebRTC 中文版》适合有一定HTML 和JavaScript 经验,希望了解WebRTC 并想学习实时通信工作原理的开发者参考阅读。
译者序
WebRTC 是谷歌的一个网页间实时通信的开源技术,它无须插件,就可以实现浏览器之间的交流功能,这意味着,用户无须安装任何东西,就可以在浏览器里面进行实时的声音和视频通话。当然,它不仅仅可以嵌入实时的音频和视频,同时还有文件共享等功能。在没有WebRTC 之前,如果你想要在浏览器内进行通话或者共享文件,通常需要安装一个非常大的程序或者Flash。而有了WebRTC,用户直接单击已经开发好的网页应用,无须其他操作,即可进行视频会议。
当然,WebRTC 是一个非常年轻的技术,还有很多成长的空间,它的崛起势必会给互联网带来巨大的冲击。目前来看,Chrome 和Firefox 浏览器已经对它有了很好的支持,而像IE 等浏览器,还需要安装一些开源的插件来支持WebRTC。
本书作者通过对网络视频原理的讲解,结合一些实例,非常详细地介绍了WebRTC 在网页应用中的每一个细节。相信通过阅读本书,你将可以创建一个非常好用的WebRTC 应用。
特别感谢寸志的引荐让我们得以参与本书的翻译,以及在整个翻译过程中提供的指导和帮助。同时也感谢这段时间团队4 人之间的相互帮助,我们力求能正确传达作者的意思,但纰漏在所难免,存在的不足敬请广大读者批评指正。
前言 XI
1 开启WebRTC 之旅 1
音视频通信领域的发展现状 1
在web 平台传输音频和视频 2
捕捉摄像头和麦克风 3
音频及视频的编解码 3
传输层 4
会话(Session)管理 4
创建web 标准 5
浏览器支持 5
Chrome、Firefox 和Opera 的兼容性 5
安卓操作系统的兼容性 6
苹果操作系统兼容性 6
IE 的兼容性 6
在浏览器中使用WebRTC 6
支持WebRTC 的应用 7
自测题 7
小结 8
2 获取用户媒体 9
访问媒体设备 9
配置静态服务器 10
创建我们的首个媒体流页面 11
限制媒体流 14
限制视频捕捉 15
多设备处理 18
创建一个拍照室应用 20
修改媒体流 23
自测题 25
小结 26
3 创建简单的WebRTC 应用 27
理解UDP 传输协议和实时传输 27
WebRTC API 30
RTCPeerConnection 对象 30
信号传递和交涉 31
会话描述协议(SDP)33
找到一条清晰的路线到其他用户 35
创建一个基本的WebRTC 应用 38
创建一个 RTCPeerConnection 38
建立SDP OFFER 和返回 43
寻找ICE 候选路径 44
加入流和打磨 46
运行你的第一个WebRTC 应用 47
自测题 51
小结 52
4 创建信令服务器 53
构建信令服务器 53
搭建开发环境 55
获得一个连接 56
测试我们的服务器 58
识别用户59
发起通话 62
呼叫应答 63
处理ICE 候选路径 64
呼叫挂断 65
完成信令服务器 66
在实际应用中发送信令 70
WebSockets 的困境 70
连接其他服务 71
自测题 72
小结 73
5 把客户端连接到一起 75
客户端应用 75
创建页面 77
获取一个连接 79
登录到应用程序 81
开始一个对等连接 82
发起通话 85
检测通信 87
挂断电话 88
一个完整的WebRTC 客户端 89
改进应用程序 95
自测题 95
小结 96
6 使用WebRTC 发送数据 97
流控制传输协议和数据传输 97
RTCDataChannel 对象 99
数据通道选项 101
发送数据 101
加密与安全 102
添加文字聊天 103
用例 107
自测题 108
小结 109
7 文件共享 111
使用文件API 拾取文件 112
准备我们的页面 114
获取对文件的引用 121
文件分块 122
使文件分块可读 124
文件读取与发送 126
在“另一端”组合文件块 128
向用户展示进度 130
自测题 131
小结 132
8 高安全性与大规模优化 133
保护信令服务器 133
使用编码 134
使用OAuth 提供器 134
支持移动设备 136
网格网络简介 138
网格类型 139
网格网络的缺陷 143
更多用户的视频会议 144
视频会议的未来 146
自测题 146
小结 147
附录 自测题答案 149