Sekitar enam bulan yang lalu, saya memutuskan untuk membuat program untuk mengendalikan komputer melalui browser. Saya mulai dengan server HTTP soket tunggal sederhana, yang mentransfer gambar ke browser dan menerima koordinat kursor untuk kontrol.
Pada tahap tertentu, saya menyadari bahwa teknologi WebRTC sangat cocok untuk keperluan ini. Browser Chrome memiliki solusi seperti itu, diinstal melalui ekstensi. Tetapi saya ingin membuat program ringan yang akan bekerja tanpa instalasi.
Awalnya saya mencoba menggunakan perpustakaan yang disediakan oleh Google, tetapi setelah kompilasi dibutuhkan 500MB. Saya harus menerapkan seluruh tumpukan WebRTC hampir dari awal, saya berhasil memasukkan semuanya ke dalam file exe ukuran 2,5MB. Seorang teman membantu dengan antarmuka JS, itulah yang akhirnya.
Jalankan program:
Kami membuka tautan di tab browser dan mendapatkan akses penuh ke desktop:
Animasi kecil dari proses pengaturan koneksi:
Didukung oleh Chrome, Firefox, Safari, Opera.
Ada kemungkinan mentransmisikan suara, panggilan audio, manajemen clipboard, transfer file dan hotkey.
Dalam perjalanan bekerja pada program ini, saya harus mempelajari sekitar selusin RFC dan memahami bahwa Internet tidak memiliki informasi yang cukup tentang pengoperasian protokol WebRTC. Saya ingin menulis artikel tentang teknologi yang digunakan di dalamnya, saya ingin tahu masalah apa yang menarik minat masyarakat berikut ini:
- SDP Streaming Description Protocol
- Calon ICE dan membangun koneksi antara dua titik, STUN dan TURN server
- Koneksi DTLS dan transfer kunci ke sesi RTP
- Protokol RTP dan RTCP dengan enkripsi untuk transmisi media
- Transfer H264, VP8, dan Opus melalui RTP
- Koneksi data biner SCTP