リアルタイムコミュニケーション向け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',
  };
}

主要コンポーネント

  1. RTCPeerConnection: ピアツーピア接続、ICE候補交換、メディアネゴシエーションを処理
  2. getUserMedia: ユーザーのマイクとカメラからオーディオ/ビデオをキャプチャ
  3. RTCDataChannel: 設定可能な信頼性でピア間で任意のデータを送信
  4. MediaRecorder: メディアストリームをローカルに記録

ネットワークの考慮事項

  • STUNサーバー: NAT越しのピアのパブリックIPアドレス検出を支援
  • TURNサーバー: 直接ピアツーピア接続が不可能な場合にトラフィックをリレー(約10-15%のケース)
  • ICE候補: STUNとTURNを組み合わせて最適な接続を確立するフレームワーク

WebRTCは接続メタデータを交換するためのシグナリングサーバー(WebSocket、HTTPなど)が必要ですが、実際のメディアはピアツーピアで流れます。

ユースケース

ビデオ会議(Google Meet、Zoom Webクライアント)、ピアツーピアファイル共有、画面共有、ピアへのライブストリーミング、低遅延データチャネルを使用したマルチプレイヤーゲーム、IoTデバイス通信を駆動します。

試してみる — Browser Feature Detector

フルツールを開く