WebRTC Compatibility Check for Real-Time Communication

Detect WebRTC support for peer-to-peer audio, video, and data channels. Covers RTCPeerConnection, getUserMedia, and STUN/TURN server configuration.

Network

Detailed Explanation

WebRTC Detection

WebRTC (Web Real-Time Communication) enables peer-to-peer audio, video, and arbitrary data transfer directly between browsers without plugins or intermediate servers for the media stream.

Basic Detection

const hasWebRTC = typeof RTCPeerConnection !== 'undefined';

Complete Feature Check

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',
  };
}

Key Components

  1. RTCPeerConnection: Handles the peer-to-peer connection, ICE candidate exchange, and media negotiation
  2. getUserMedia: Captures audio/video from the user's microphone and camera
  3. RTCDataChannel: Sends arbitrary data between peers with configurable reliability
  4. MediaRecorder: Records media streams locally

Network Considerations

  • STUN servers: Help peers discover their public IP addresses behind NAT
  • TURN servers: Relay traffic when direct peer-to-peer connection is impossible (about 10-15% of cases)
  • ICE candidates: The framework that combines STUN and TURN to establish the best possible connection

WebRTC requires a signaling server (WebSocket, HTTP, etc.) to exchange connection metadata, but actual media flows peer-to-peer.

Use Case

Powers video conferencing (Google Meet, Zoom web client), peer-to-peer file sharing, screen sharing, live streaming to peers, multiplayer games with low-latency data channels, and IoT device communication.

Try It — Browser Feature Detector

Open full tool