Jika anda memerlukan pengetahuan latar belakang mengenai WebRTC dan komunikasi peer-to-peer, disarankan untuk membaca "Dawn of Webrtc" dan "Pengenalan kepada GetUsermedia API".
Oleh kerana kerumitan membina aplikasi WebRTC tersuai, artikel ini tidak akan menyediakan tutorial membina langkah demi langkah. Sebaliknya, kita akan melihat jenis perpustakaan dan pelayan yang diperlukan untuk membina aplikasi yang boleh dipercayai. Saya akan menyediakan pautan aplikasi sampel lengkap yang boleh anda rujuk semasa membina permohonan anda sendiri.
Kami akan memberi tumpuan terutamanya pada platform SimpleWebRTC. Kemudian, kami akan secara ringkas merangkumi alternatif sumber komersil dan terbuka yang dapat membantu anda mencapai matlamat yang sama.
mata utama
Apa itu WebRTC?
WebRTC (komunikasi masa nyata Web) adalah projek sumber terbuka yang membolehkan komunikasi masa nyata titik ke titik antara pelayar web, menghantar video masa nyata, aliran audio dan data melalui rangkaian. Google Chrome, Mozilla Firefox, Safari, Opera dan pelayar berasaskan kromium lain telah melaksanakan teknologi ini secara asli. Ini adalah berita baik kerana pengguna boleh mengakses teknologi tanpa memasang plugin atau aplikasi pihak ketiga.Versi pelayar yang lebih tua dan pelayar tradisional seperti Internet Explorer tidak mempunyai teknologi ini. Pengguna perlu menggunakan penyemak imbas terkini. Anda boleh melihat senarai penuh penyemak imbas yang disokong:
Pada bulan Januari 2021, World Wide Web Alliance (W3C) mengubah spesifikasi WebRTC 1.0 dari keadaan cadangan calon ke keadaan yang disyorkan. Ini adalah pencapaian yang luar biasa memandangkan teknologi pertama kali dikeluarkan 10 tahun yang lalu.
Spesifikasi WebRTC merangkumi bagaimana pelayar mengakses peranti media tempatan dan bagaimana mereka menggunakan satu set protokol masa nyata untuk menghantar data aplikasi media dan umum kepada penyemak imbas. Ia melakukan ini melalui satu set API JavaScript yang telah diliputi dalam artikel sebelumnya. Spesifikasi ini juga memastikan bahawa semua komunikasi disulitkan dan pihak ketiga yang tidak diingini tidak dapat menguping aliran.
Harus diingat bahawa WebRTC tidak meliputi segala -galanya, seperti isyarat, proses memulakan sambungan antara penyemak imbas. Untuk mengelakkan batasan teknikal baru yang berpotensi, bahagian kandungan ini ditinggalkan dari spesifikasi. Alasan kedua ialah WebRTC adalah teknologi pelanggan, dan lebih baik menggunakan teknologi pelayan untuk menangani masalah seperti sesi.
bagaimana isyarat penyemak imbas berfungsi
WebRTC ditakrifkan sebagai komunikasi titik-ke-titik antara pelayar web. Realitinya adalah bahawa kebanyakan pelayar berjalan di komputer yang terletak di belakang peranti NAT (Network Alamat Terjemahan) (Firewall Pilihan). Peranti NAT (biasanya router atau modem) membenarkan komputer dengan alamat IP peribadi untuk menyambung ke Internet melalui satu alamat IP awam.
peranti NAT melindungi komputer peribadi dari serangan langsung oleh pengguna berniat jahat di Internet melalui alamat IP. Malangnya, ia juga menghalang peranti dengan alamat IP peribadi daripada menyambung ke peranti IP peribadi lain melalui Internet.
Untuk mengatasi cabaran ini, Pasukan Petugas Kejuruteraan Internet (IETF) mencadangkan protokol ICE (Interactive Connection Plotmischmisment), yang membolehkan komputer IP swasta untuk ditemui dan menyambung ke komputer swasta lain di rangkaian awam.
Ini melibatkan menggunakan pelayan isyarat awam, yang mana kedua -dua pelanggan dapat menyambung dengan mudah. Komputer rakan sebaya menghubungkan ke pelayan ini dan menggunakannya untuk menukar alamat IP dan port yang diperlukan oleh sumber data dan penerima. Dengan maklumat ini, mereka boleh mewujudkan sambungan langsung antara satu sama lain dan mula menghantar video, audio, dan data.
Ini adalah demonstrasi animasi:
Penerangan imej: WebRTC isyarat
Untuk menubuhkan isyarat WebRTC, rangka kerja ICE mengharapkan anda menyediakan dua jenis pelayan berikut.1
Ini adalah skrip sampel yang berjalan pada klien, yang membolehkan penyemak imbas memulakan sambungan melalui pelayan stun. Skrip ini membolehkan pelbagai URL pelayan stun disediakan apabila salah satu pelayan gagal:
Sambungan yang ditubuhkan melalui pelayan stun adalah jenis komunikasi WebRTC yang paling ideal dan kos efektif. Pengguna tidak akan menanggung sebarang kos yang berjalan. Malangnya, kerana setiap rakan sebaya menggunakan jenis peranti NAT yang berbeza, beberapa sambungan pengguna mungkin tidak ditubuhkan. Dalam kes ini, protokol ICE menghendaki anda memberikan sandaran, jenis pelayan isyarat yang berbeza yang dipanggil pelayan Turn.
function createPeerConnection() { myPeerConnection = new RTCPeerConnection({ iceServers: [ { urls: "stun:stun.stunprotocol.org", }, ], }); }
Pada dasarnya, selepas mewujudkan hubungan antara rakan sebaya, ia menerima aliran dari satu rakan sebaya dan ke hadapannya kepada rakan sebaya dan sebaliknya. Komunikasi jenis ini lebih mahal, dan tuan rumah mesti membayar beban pemprosesan dan jalur lebar yang diperlukan untuk menjalankan pelayan Turn.
Berikut adalah penerangan grafik yang melibatkan keseluruhan proses isyarat yang melibatkan pelayan stun terlebih dahulu dan kemudian pelayan giliran sebagai sandaran:
membina aplikasi sembang video tersuai
Seperti yang disebutkan sebelumnya, menubuhkan platform WebRTC boleh menjadi rumit. Nasib baik, kami mempunyai platform perniagaan semua-dalam-satu yang menjadikan aplikasi sembang video WebRTC bangunan mudah. Sekarang mari kita lihat bagaimana SimpleWebrtc dapat melegakan beban kita.
Apa itu SimpleWebrtc?
SimpleWEBRTC adalah platform yang menyediakan pemaju dengan perkhidmatan yang mudah dan kos efektif untuk membina dan menggunakan aplikasi masa nyata tersuai menggunakan React. Khususnya, mereka menyediakan yang berikut:
SimpleWebrtc SDK: Perpustakaan Front-end
Penerangan gambar: Talky
Penerangan Gambar: Aplikasi Tutor Web
Perkhidmatan WebRTC utama yang disediakan oleh platform SimpleWebRTC termasuk:
pemindahan keselamatan video, suara dan perkongsian skrinpenyulitan akhir-ke-akhir
Kelebihan pelan kumpulan kecil adalah penyulitan akhir-ke-akhir boleh digunakan, sementara rancangan kumpulan besar tidak boleh. Dalam pelan kumpulan kecil, 60-80% sesi adalah sambungan peer-to-peer, dan aliran media tidak pernah menyentuh pelayan. Tiada caj untuk penggunaan jalur lebar untuk sesi tersebut.
Untuk pelan kumpulan besar, lalu lintas dialihkan melalui pelayan yang dipanggil SFU (unit pemajuan terpilih), dan semua lalu lintas berukuran.
Harus diingat bahawa kebanyakan alternatif komersial (yang akan kita nyatakan secara ringkas kemudian) menggunakan yang dibilkan oleh minit . Pada pandangan pertama, nampaknya agak berpatutan. Walau bagaimanapun, anda mengenakan caj untuk sambungan peer-to-peer, dan SimpleWebRTC tersedia secara percuma.
(Kandungan berikut akan dipermudahkan kerana panjang artikel, dan maklumat teras dan contoh kod akan dikekalkan. Sila rujuk dokumen asal untuk teks asal yang lengkap.)
Perpustakaan klien SimpleWebRTC bergantung pada ekosistem React dan Redux. Anda memerlukan kemahiran asas:
Dapatkan halaman pendaftaran SimpleWebrtc.com dan daftar akaun baru. Anda mendapat jalur lebar 2GB, dan jika anda mendaftar untuk surat berita mereka, anda akan mendapat jalur lebar 3GB tambahan. Kuota ini sepatutnya mencukupi untuk membangun dan menguji aplikasi sembang video anda.
Selepas mendaftar, anda perlu mengesahkan alamat e -mel anda. Selepas melengkapkan langkah ini, anda harus berada di halaman papan pemuka di mana anda akan menerima kunci API anda.
Gunakan kekunci API ini, anda boleh mula membina aplikasi WebRTC tersuai anda sendiri. Dalam bahagian seterusnya, kami akan menjalankan aplikasi sampel lengkap yang dibina oleh pasukan SimpleWebRTC.
(sampel kod diselaraskan)
(langkah penyebaran mudah)
(pengenalan ringkas kepada alternatif)
Kesimpulan
Bagaimanapun, lebih mudah untuk membina penyelesaian sembang video secara langsung dengan WebRTC menggunakan platform komersial. Mengguna pakai laluan sumber terbuka boleh dilaksanakan, tetapi anda perlu menjadi tuan rumah pelayan Turn sendiri untuk memastikan sambungan yang boleh dipercayai untuk semua pengguna. Dalam kedua -dua kes, proses membina boleh memakan masa yang sangat lama memandangkan kerumitan relatif aplikasi sampel yang telah kita lihat.
Soalan utama untuk bertanya kepada diri sendiri adalah sama ada membina penyelesaian masa nyata adat anda sendiri adalah bernilai masa anda. Kecuali anda merancang untuk menggunakan WebRTC sebagai perniagaan teras anda, anda mungkin perlu terlebih dahulu berunding dengan pengalaman dalam mengendalikan teknologi ini.
(bahagian Soalan Lazim diselaraskan)
Atas ialah kandungan terperinci Membina aplikasi sembang video webrtc. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!