iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
Modern Web

後疫情時代的 WebRTC 微學習系列 第 21

Day21 [實作] 一對一視訊通話(1): 運作說明

  • 分享至 

  • xImage
  •  

接下來幾天,我們會實作一個一對一視訊通話的案例,我們會建立一個 client 端給使用者視訊使用 以及一個 signaling server用於信令的傳輸,最後接上我們前面架好的 turn server,今天先來說明整個流程和信令的設計。

信令說明

信令 說明 方向
join 使用者加入房間 client → server
ready 其他使用者加入房間(準備通話) server → client
offer client 建立 offer 並透過 signaling server 轉發 clientA → server → clientB
answer client 收到 offer 後 建立 answer 並透過 signaling server 轉發 clientB → server → clientA
ice_candidate 找尋到 ICE 候選位置後,送去 signaling server 與另一位配對 clientA ↔ server ↔ clientB

流程

https://ithelp.ithome.com.tw/upload/images/20211004/20130062jrjMruhgnF.png

  1. Client (Bob) 與 Client (Alice) 使用,Socket.io 與 Signaling server 連線
  2. Client (Bob) 與 Client (Alice)分別對 join 發送要加入哪個房間的信令
  3. Signaling server 會訂閱 join 並對除了自己房間的所有人發送 ready
  4. Client (Bob) 收到 ready 後會發送 offer
  5. Signaling server 收到 offer 後,不做任何處理直接做轉發給 Client (Alice)
  6. Client (Alice) 收到 offer 後,會建立 answer,一樣透過 Signaling server 直接轉發
  7. Client (Bob) 與 Client (Alice) 收集完各自的 candidates 也是透過 Signaling server 直接轉發

上一篇
Day20 Socket.io 常用的 API
下一篇
Day22 [實作] 一對一視訊通話(2): Signaling server
系列文
後疫情時代的 WebRTC 微學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言