最終更新:2021-06-25 (金) 05:32:25 (1037d)
WebRTC/シグナリング
概要
交換する情報
- SDP
- ICE Candidate (STUN/TURNを含む通信経路の情報)
- ICE: 適切な通信経路を選ぶ仕組み
方式
Vanilla ICE?
- 全てのICE candidateが出そろった後に、SDPとまとめて交換
Trickle ICE?
- 初期のSDPを交換し、その後ICE Candidateを順次交換する方式
- すべてのICE candidateを交換し終わる前にP2P通信が始まることがあるので、Trickle ICEの方が一般的に早く接続が確立します。
SDP
交換する情報
- 通信するメディアの種類(音声、映像)、メディアの形式(コーデック)、アプリケーションデータ
- IPアドレス、ポート番号
- 暗号化の鍵
- セッションの属性(名前、識別子、アクティブな時間など)
- ICE Candidate
処理 (Vanilla ICE?の場合)
送信側 受信側 Offer SDPの生成 RTCPeerConnection.createOffer ICE candidateの収集 RTCPeerConnection.onicecandidate Offser SDPの送信 Offser SDPの受信 RTCPeerConnection.setRemoteDescription ICE candidateの収集 RTCPeerConnection.onicecandidate Answer SDPの生成→送信 RTCPeerConnection.createAnswer new RTCSessionDescription
Offer
Answer
- ICE Candidateの収集
ICE Candidate
- 通信経路の候補