Ini adalah bagian 2 dari seri saya di WEBRTC.
Baca Bagian 1 di sini: The Curious World of Web RTC (Bagian 1: Pendahuluan)
Mari Bicara Server. Dari semua artikel WEBRTC yang saya baca, semuanya membahas server di akhir diskusi. Saya pembaca yang sangat buruk. Beberapa artikel pertama yang saya baca, saya benar -benar berpikir WebRTC tidak memerlukan server. Yang merupakan kebenaran parsial. Komunikasi yang sebenarnya, biasanya tidak membutuhkan server. Tetapi setidaknya satu atau lebih server diperlukan untuk memfasilitasi komunikasi awal.
Rencana saya adalah menjaga seri sesederhana mungkin. Saya akan menggunakan pasangan nama yang sangat terkenal sebagai contoh. Alice dan Bob, kedua pihak kami bersedia membuat koneksi rekan RTC. Agar contoh ini berfungsi, mari kita asumsikan Alice ingin mengirim surat langsung ke Bob.
Server Pensinyalan:
Server pensinyalan biasanya selalu diperlukan dalam skenario dunia nyata. Ini dapat diimplementasikan dalam banyak hal. Dan ada banyak server pensinyalan terkenal di web. Tetapi karena sifatnya yang super sederhana dan fakta bahwa kemampuan untuk memiliki kontrol penuh membantu, saya sangat merekomendasikan membuat satu secara manual.
Beginilah komunikasi terjadi dari Alice ke Bob,
Alice menghasilkan an Tawarkan SDP (Cara mewah untuk mengatakan string yang menggambarkan komunikasi waktu nyata Alice dan alamat IP lokal). Jika Alice adalah orang sungguhan dan alamat IP adalah alamat nyata, SDP imajiner mungkin berisi sesuatu seperti ini:
Saya tinggal di rumah nomor 4. Saya mampu memahami dan berbicara video VP9 dan audio Opus.
Alice mengirimkannya ke server pensinyalan. Pertimbangkan itu sebagai kotak pos di kantor pos. Jadi, server pensinyalan mungkin hanya server API REST dan Alice mengirimnya SDP Sebagai permintaan posting, atau lebih baik gunakan soket web.
Sekarang Bob, mengumpulkan SDP, dari kotak pos (server pensinyalan) atau mendapatkannya sebagai sinyal soket (tergantung pada implementasi server pensinyalan) dan membuat file Jawab SDP. SDP ini juga berisi informasi serupa dengan penawaran SDP. Alice mengumpulkan atau mendapatkannya dari server pensinyalan.
Sekarang di dunia yang bahagia dan kecil, Alice sekarang tahu alamat dan kemampuan Bob, Bob tahu alamat dan kemampuan Alice, dan mereka harus dapat berkomunikasi.
Masukkan dunia Nat dan Firewall:
Di dunia nyata ada ribuan rumah #4, di berbagai daerah. Hal yang sama terjadi untuk alamat IP di dalam NAT. Nat sangat mudah dimengerti. Pikirkan router nirkabel di rumah atau pekerjaan Anda. Di bawah jaringan WiFi Anda, setiap perangkat mendapatkan alamat IP untuk terhubung ke jaringan lokal yang dibuat oleh router Anda. Kemudian router Anda menggunakan alamat IP asli Anda untuk terhubung ke internet (dalam banyak kasus, router Anda juga merupakan bagian dari NAT yang dibuat oleh ISP Anda, sehingga mungkin ada beberapa lapisan NAT di antara perangkat Anda dan ini adalah alamat IP yang sebenarnya). Jadi, dalam contoh kami, jika Alice mengatakan dia tinggal di rumah # 4, itu mungkin berada di daerah di kota besar. Jadi, sebagian besar waktu, hanya SDP yang tidak dapat membuat koneksi dan hanya server pensinyalan yang tidak cukup.
Server setrum:
Server setrum digunakan untuk menentukan alamat IP klien yang sebenarnya. Klien peer (Alice atau Bob) bertanya kepada server setrum tentang alamat IP mereka dan itu hanya memberi tahu mereka apa yang tampaknya menjadi alamat IP mereka. Klien menggunakan informasi ini untuk membuat kandidat ICE (lebih lanjut dalam kandidat ICE nanti).
Anda mungkin tidak memerlukan server setrum sendiri. Karena rendahnya jumlah pemrosesan yang dibutuhkan, banyak server public yang tersedia secara gratis di sini adalah daftar.
Turn Server:
Putar server adalah server estafet. Dalam hal koneksi langsung tidak dimungkinkan antara Alice dan Bob, server belokan digunakan untuk menyampaikan lalu lintas (tidak begitu rekan untuk mengintip dalam kasus ini). Ini membuat menjalankan server belokan menjadi sangat mahal dan Anda mungkin tidak akan menemukan yang gratis. Ada banyak layanan yang menyediakan server belokan terkelola. Atau Anda dapat membuat sendiri dengan upaya. Lebih lanjut tentang mereka di posting blog mendatang.
Server berbalik dan setrum juga disebut server es.
Server lain:
Mungkin ada server lain yang terlibat dalam aplikasi WEBRTC yang kompleks seperti server media, untuk mencampur umpan video multi -partai, menyandikan/mendekode untuk perangkat/protokol yang tidak didukung, menerapkan filter waktu nyata, atau perekaman (perekaman dapat dilakukan pada klien juga, berkat API perekam Media Stream).
Mungkin ada server tertentu lainnya untuk persyaratan spesifik.
Apa kandidat ICE:
Kandidat es adalah cara yang disarankan yang berbeda untuk menjangkau klien. Setiap klien menciptakan banyak kandidat ICE tergantung pada server ICE yang disediakan untuk koneksi rekan.
Aliran berjalan seperti ini:
- Alice membuat penawaran SDP dan mengirim ke Bob melalui server pensinyalan.
- Bob membuat jawaban SDP dan mengirim ke Alice, juga melalui server pensinyalan.
- Mereka mencoba terhubung dengan hanya SDP, sebagian besar waktu, mereka gagal.
- Alice dan Bob mulai menghasilkan kandidat ICE dengan informasi yang dikumpulkan dari server es mereka (server berbalik dan setrum) dan mengirim kandidat itu satu sama lain melalui server pensinyalan.
- Kedua belah pihak mencoba untuk terhubung satu sama lain menggunakan kandidat satu sama lain dan memilih cara yang paling efisien dalam proses.
- Jika semuanya berjalan dengan baik, koneksi rekan dibuat.
Untuk menghubungkannya dengan dunia nyata:
- Alice membuat penawaran SDP dan mengirimkannya ke Bob
- Bob mendapatkan tawaran Alice SDP, membuat jawaban SDP dan mengirim ke Alice.
- Mereka mencoba saling mengirim surat, dan gagal.
- Alice dan Bob pergi ke server setrum dan belajar tentang kotanya dan lokalitasnya.
- Kemudian Alice dan Bob menghasilkan kandidat ICE dari informasi yang disediakan oleh STUN Server dan mengirimkan informasi satu sama lain. Mereka mencoba mengirim surat lagi. Jika surat berjalan, koneksi dibuat.
- Jika mereka masih tidak dapat mengirim surat, mereka pergi ke restoran (server setrum) dan menghubungkan alamatnya. Kemudian mereka bertemu di restoran dan bertukar surat.
Ada ratusan operasi di antaranya, mereka ditinggalkan dengan sengaja. Dalam posting selanjutnya, saya akan membahas lebih banyak tentang implementasi proses. Saya mungkin terlalu disederhanakan, atau terlalu rumit prosesnya. Beri tahu saya pendapat Anda di komentar.
The Curious World of Web RTC (Bagian 2: Server)


