📅 28 Apr 2026  |  ⏱ 7 menit baca  |  👤 SUGENKWAVE NUSANTARA TECH

🌐 Apa itu WebRTC? Teknologi P2P untuk Komunikasi Real-time

📚 DAFTAR ISI 1. Sejarah dan Latar Belakang 2. Cara Kerja WebRTC 3. Komponen Utama 4. Keamanan WebRTC 5. STUN vs TURN
WebRTC P2P JavaScript Real-time Enkripsi

WebRTC (Web Real-Time Communication) adalah teknologi revolusioner yang memungkinkan browser berkomunikasi langsung satu sama lain tanpa server perantara. Teknologi ini menjadi fondasi aplikasi video call, chat P2P, dan IoT modern.

Sejarah dan Latar Belakang

WebRTC dikembangkan oleh Google pada tahun 2011 dan diakuisisi dari perusahaan GIPS (Global IP Solutions). Pada tahun 2012, Google membuka kode sumber WebRTC dan menyerahkannya ke W3C untuk dijadikan standar web terbuka.

Sebelum WebRTC ada, komunikasi real-time di browser membutuhkan plugin seperti Flash atau Java Applet. WebRTC menghilangkan ketergantungan tersebut dengan mengintegrasikan kemampuan komunikasi langsung ke dalam browser modern.

Cara Kerja WebRTC

WebRTC bekerja dalam tiga tahap utama: Signaling, ICE Gathering, dan Media Transfer.

Tahap 1: Signaling

Signaling adalah proses pertukaran informasi awal antara dua peer sebelum koneksi langsung terbentuk. Informasi yang dipertukarkan disebut SDP (Session Description Protocol) yang berisi detail tentang codec, format media, dan kemampuan masing-masing browser.

PEER A SIGNALING SERVER PEER B | | | |--- Offer SDP -------> | | | |--- Offer SDP ---------->| | |<-- Answer SDP ----------| |<-- Answer SDP ------- | | | | | |<====== Koneksi P2P Langsung Terbentuk =========>|

Tahap 2: ICE Gathering

ICE (Interactive Connectivity Establishment) adalah framework untuk menemukan jalur terbaik antara dua peer. ICE mencoba tiga jenis koneksi:

Tahap 3: Media Transfer

Setelah koneksi terbentuk, data mengalir langsung antara dua peer menggunakan SRTP untuk media dan SCTP untuk DataChannel. Semua data dienkripsi dengan DTLS.

Komponen Utama WebRTC API

RTCPeerConnection

API utama yang mengelola seluruh siklus hidup koneksi WebRTC.

// Contoh RTCPeerConnection dengan STUN server publik const pc = new RTCPeerConnection({ iceServers: [ { urls: 'stun:stun.l.google.com:19302' }, { urls: 'turn:your-turn-server.com:3478', username: 'your-username', credential: 'your-credential' } ] }); pc.onicecandidate = (event) => { if (event.candidate) { sendViaSignaling(event.candidate); } };

RTCDataChannel

Memungkinkan pengiriman data arbitrary secara P2P tanpa server.

const dc = pc.createDataChannel('chat', { ordered: true, maxRetransmits: 3 }); dc.send(JSON.stringify({ type: 'MSG', data: encryptedMessage, time: Date.now() })); dc.onmessage = (event) => { const msg = JSON.parse(event.data); };

MediaStream API

const stream = await navigator.mediaDevices.getUserMedia({ audio: { echoCancellation: true, noiseSuppression: true }, video: { width: 1280, height: 720 } }); stream.getTracks().forEach(track => pc.addTrack(track, stream));

Keamanan WebRTC

💡 Aplikasi P2P yang baik menambahkan enkripsi end-to-end di atas WebRTC, seperti ECDH/AES-256-GCM untuk keamanan berlapis.

STUN vs TURN

STUN membantu perangkat menemukan IP publiknya — ringan, hanya digunakan saat negosiasi. TURN adalah fallback saat koneksi langsung tidak bisa dilakukan — meneruskan semua paket, membutuhkan bandwidth lebih besar.

▶ COBA CHAT AIOT GRATIS