因爲最近在研究webRTC
,儘管它允許點對點/端對端的通信,但還是需要服務器實現,比如以下場景:
- 信令傳輸:建立點對點的連接需要傳輸一些媒體和網絡相關的元數據信息,需要通過服務器
- NAT和防火牆穿透:需要通過
ICE
框架來建立點與點之間的網絡路徑。用STUN/TURN
服務器。
WebRTC
建立連接的步驟大概是這樣的:
- 客戶端(瀏覽器)直接嘗試直連;
- 如果如果直連則通過
STUN
服務器進行穿透; - 如果無法穿透則通過
TURN
服務器進行中轉。
一、STUN/TURN
服務器
- STUN 服務器用於獲取設備的外部網絡地址
- TURN 服務器是在點對點失敗後用於通信中繼。
二、coturn
:TURN
和STUN Server
的免費開源實現
信令服務器可以用Node.js
搭建,但是現實中大多都用STUN/TURN
服務器進行打洞,coturn是一個免費開源的STUN/TURN
服務器,完整的實現了STUN/TURN/ICE
協議,支持 P2P
穿透防火牆。
支持的項目目標平臺是:
- Linux(Debian,Ubuntu,Mint,CentOS,Fedora,Redhat,Amazon Linux,Arch Linux,OpenSUSE)
- BSD(FreeBSD,NetBSD,OpenBSD,DragonFlyBSD)
- Solaris 11
- Mac OS X.
- Cygwin(用於非生產研發目的)
也可以通過請求支持其他服務器平臺。
支持任何客戶端平臺,包括Android,iOS,Linux,OS X,Windows和Windows Phone。
1、安裝虛擬機
這裏使用的是在Ubuntu
系統環境下的編譯安裝coturn
的過程。
直接在瀏覽器中搜索進行下載,我使用的是VMware Workstation 12
:
2、下載Ubuntu
鏡像
3、在VMware
虛擬機中安裝Ubuntu
a)創建新的虛擬機
b)選擇自定義(高級)
c)選擇稍後安裝系統
一直點下一步,直到到安裝客戶機操作系統,打馬賽克的地方是因爲我已經安裝好了,這裏本身是沒有任何目錄地址的,選擇稍後安裝操作系統,然後下一步
d)選擇系統版本
首先客戶機系統爲Linux
,然後你的電腦是32位的就默認選擇即可不用更改,如果是64位的就要從下拉選擇裏選擇Ubuntn 64位
,否則會出錯,然後點擊下一步。
e)選擇安裝位置
這裏可以自定義安裝目錄,但是選擇的目錄文件必須是已存在的
f)安裝配置
關於設置處理器個數、內存大小、網絡類型、控制器類型、磁盤類型、選擇磁盤都可以選擇默認的,因爲後期可以自行更改,到了指定磁盤容量,選擇將虛擬磁盤存儲爲單個文件,然後點擊下一步
g)自定義硬件
一直下一步到這裏,然後點擊自定義硬件按鈕
h)選擇Ubuntu
鏡像
然後點擊關閉,點擊完成,虛擬機到此配置完畢。
4、開啓虛擬機
5、設置語言
雙擊選擇中文簡體,然後會自動跳到下一步。然後會出現鍵盤佈局,選擇漢語然後繼續。
6、安裝類型
到了安裝類型,選擇清楚整個磁盤並安裝Ubuntu
,然後點擊繼續。
7、輸入位置
隨便輸入你所在就行。
8、設置用戶名密碼
輸入你自己定義的用戶名和密碼後,選擇自動登錄,然後點擊繼續。
9、正式安裝Ubuntu
安裝完畢後,選擇重啓。
重啓後,就可以看到如下界面,安裝完成:
參考文章:
自己動手搭建 WebRTC TURN&STUN 服務器
p2p webrtc服務器搭建系列1: 房間,信令,coturn打洞服務器