リアルタイムコミュニケーション向けWebRTC互換性チェック
ピアツーピアのオーディオ、ビデオ、データチャネル用のWebRTCサポートを検出。RTCPeerConnection、getUserMedia、STUN/TURNサーバー設定を解説。
Network
詳細な説明
WebRTC検出
WebRTC(Web Real-Time Communication)は、プラグインやメディアストリーム用の中間サーバーなしで、ブラウザ間で直接ピアツーピアのオーディオ、ビデオ、任意のデータ転送を可能にします。
基本検出
const hasWebRTC = typeof RTCPeerConnection !== 'undefined';
完全な機能チェック
function checkWebRTC() {
return {
peerConnection: typeof RTCPeerConnection !== 'undefined',
getUserMedia: !!(
navigator.mediaDevices &&
navigator.mediaDevices.getUserMedia
),
dataChannel: typeof RTCPeerConnection !== 'undefined'
&& 'createDataChannel' in RTCPeerConnection.prototype,
mediaRecorder: typeof MediaRecorder !== 'undefined',
};
}
主要コンポーネント
- RTCPeerConnection: ピアツーピア接続、ICE候補交換、メディアネゴシエーションを処理
- getUserMedia: ユーザーのマイクとカメラからオーディオ/ビデオをキャプチャ
- RTCDataChannel: 設定可能な信頼性でピア間で任意のデータを送信
- MediaRecorder: メディアストリームをローカルに記録
ネットワークの考慮事項
- STUNサーバー: NAT越しのピアのパブリックIPアドレス検出を支援
- TURNサーバー: 直接ピアツーピア接続が不可能な場合にトラフィックをリレー(約10-15%のケース)
- ICE候補: STUNとTURNを組み合わせて最適な接続を確立するフレームワーク
WebRTCは接続メタデータを交換するためのシグナリングサーバー(WebSocket、HTTPなど)が必要ですが、実際のメディアはピアツーピアで流れます。
ユースケース
ビデオ会議(Google Meet、Zoom Webクライアント)、ピアツーピアファイル共有、画面共有、ピアへのライブストリーミング、低遅延データチャネルを使用したマルチプレイヤーゲーム、IoTデバイス通信を駆動します。