WebRTC 最常見的應用場景就是一對一的視訊通話,當我們準備和另一端的人進行點對點的連線,會遇到哪些問題呢?
今天先來了解網路協商的部分,前面說到通訊雙方必須知道對方要如何連線,這樣才能連通彼此,理想的網路狀況如上圖,瀏覽器都是透過外網ip做連線,這樣就可以直接進行點對點的通訊。
但事情不是這麼簡單的,真實的狀況是大部分的電腦,都是處在區域網路中並且有防火牆,如上圖,所以我們需要做以下兩個處理
透過 STUN server 可以取得外網ip 與 port,然後通過 Signaling server 告訴對方你可以怎麼連我,就可以連上線了,但是 STUN 並不是每次都能成功,NAT 有多種不同類型,如果無法打洞成功較需要 TURN server 來幫忙轉傳了,這邊先挖個坑,後面我們更詳細的來了解如何有效的進行 NAT 穿透,以及 NAT 分別有哪些類型。