WebRTC 是一個(gè)支持網(wǎng)絡(luò)瀏覽器進(jìn)行實(shí)時(shí)語音對(duì)話或視頻對(duì)話的軟件架構(gòu)。
《Learning WebRTC 中文版》使用形象的案例介紹,逐步深入地闡述了WebRTC 的幕后工作原理。通過閱讀本書,讀者可以快速、有效地掌握創(chuàng)建一個(gè)WebRTC 應(yīng)用所必需的知識(shí),包括獲取用戶設(shè)備信息、創(chuàng)建WebRTC 應(yīng)用的客戶端和服務(wù)器、連接用戶并發(fā)送數(shù)據(jù)、文件共享、數(shù)據(jù)信息安全和性能優(yōu)化。
《Learning WebRTC 中文版》適合有一定HTML 和JavaScript 經(jīng)驗(yàn),希望了解WebRTC 并想學(xué)習(xí)實(shí)時(shí)通信工作原理的開發(fā)者參考閱讀。
Dan Ristic
他是一位前端工程師,同時(shí)也是一名開放網(wǎng)絡(luò)(Open Web)布道師。他致力于研究前沿技術(shù),并以獨(dú)到的創(chuàng)見推進(jìn)Web 領(lǐng)域的發(fā)展。他曾在位于美國亞利桑那州的先進(jìn)技術(shù)大學(xué)(University of Advancing Technology)研習(xí)工程知識(shí),對(duì)Web 領(lǐng)域滿懷熱情,離開后便一直從事Web 應(yīng)用開發(fā)相關(guān)的工作。
他目前在舊金山地區(qū)生活工作,在索尼國際娛樂網(wǎng)絡(luò)公司擔(dān)任高級(jí)軟件工程師一職,負(fù)責(zé)管理前端應(yīng)用架構(gòu),為數(shù)百萬用戶提供PlayStation 應(yīng)用商店服務(wù)。業(yè)余時(shí)間里,他喜歡徒步旅行、探險(xiǎn)、開發(fā)項(xiàng)目或出席一些活動(dòng)。
前言 XI
1 開啟WebRTC 之旅 1
音視頻通信領(lǐng)域的發(fā)展現(xiàn)狀 1
在web 平臺(tái)傳輸音頻和視頻 2
捕捉攝像頭和麥克風(fēng) 3
音頻及視頻的編解碼 3
傳輸層 4
會(huì)話(Session)管理 4
創(chuàng)建web 標(biāo)準(zhǔn) 5
瀏覽器支持 5
Chrome、Firefox 和Opera 的兼容性 5
安卓操作系統(tǒng)的兼容性 6
蘋果操作系統(tǒng)兼容性 6
IE 的兼容性 6
在瀏覽器中使用WebRTC 6
支持WebRTC 的應(yīng)用 7
自測(cè)題 7
小結(jié) 8
2 獲取用戶媒體 9
訪問媒體設(shè)備 9
配置靜態(tài)服務(wù)器 10
創(chuàng)建我們的首個(gè)媒體流頁面 11
限制媒體流 14
限制視頻捕捉 15
多設(shè)備處理 18
創(chuàng)建一個(gè)拍照室應(yīng)用 20
修改媒體流 23
自測(cè)題 25
小結(jié) 26
3 創(chuàng)建簡單的WebRTC 應(yīng)用 27
理解UDP 傳輸協(xié)議和實(shí)時(shí)傳輸 27
WebRTC API 30
RTCPeerConnection 對(duì)象 30
信號(hào)傳遞和交涉 31
會(huì)話描述協(xié)議(SDP)33
找到一條清晰的路線到其他用戶 35
創(chuàng)建一個(gè)基本的WebRTC 應(yīng)用 38
創(chuàng)建一個(gè) RTCPeerConnection 38
建立SDP OFFER 和返回 43
尋找ICE 候選路徑 44
加入流和打磨 46
運(yùn)行你的第一個(gè)WebRTC 應(yīng)用 47
自測(cè)題 51
小結(jié) 52
4 創(chuàng)建信令服務(wù)器 53
構(gòu)建信令服務(wù)器 53
搭建開發(fā)環(huán)境 55
獲得一個(gè)連接 56
測(cè)試我們的服務(wù)器 58
識(shí)別用戶59
發(fā)起通話 62
呼叫應(yīng)答 63
處理ICE 候選路徑 64
呼叫掛斷 65
完成信令服務(wù)器 66
在實(shí)際應(yīng)用中發(fā)送信令 70
WebSockets 的困境 70
連接其他服務(wù) 71
自測(cè)題 72
小結(jié) 73
5 把客戶端連接到一起 75
客戶端應(yīng)用 75
創(chuàng)建頁面 77
獲取一個(gè)連接 79
登錄到應(yīng)用程序 81
開始一個(gè)對(duì)等連接 82
發(fā)起通話 85
檢測(cè)通信 87
掛斷電話 88
一個(gè)完整的WebRTC 客戶端 89
改進(jìn)應(yīng)用程序 95
自測(cè)題 95
小結(jié) 96
6 使用WebRTC 發(fā)送數(shù)據(jù) 97
流控制傳輸協(xié)議和數(shù)據(jù)傳輸 97
RTCDataChannel 對(duì)象 99
數(shù)據(jù)通道選項(xiàng) 101
發(fā)送數(shù)據(jù) 101
加密與安全 102
添加文字聊天 103
用例 107
自測(cè)題 108
小結(jié) 109
7 文件共享 111
使用文件API 拾取文件 112
準(zhǔn)備我們的頁面 114
獲取對(duì)文件的引用 121
文件分塊 122
使文件分塊可讀 124
文件讀取與發(fā)送 126
在“另一端”組合文件塊 128
向用戶展示進(jìn)度 130
自測(cè)題 131
小結(jié) 132
8 高安全性與大規(guī)模優(yōu)化 133
保護(hù)信令服務(wù)器 133
使用編碼 134
使用OAuth 提供器 134
支持移動(dòng)設(shè)備 136
網(wǎng)格網(wǎng)絡(luò)簡介 138
網(wǎng)格類型 139
網(wǎng)格網(wǎng)絡(luò)的缺陷 143
更多用戶的視頻會(huì)議 144
視頻會(huì)議的未來 146
自測(cè)題 146
小結(jié) 147
附錄 自測(cè)題答案 149