Obrolan video P2P berdasarkan WebRTC. WebRTC

Pengguna Internet Eropa dibagi menjadi dua bagian: menurut survei oleh Institute for Public Opinion Analysis di Allenbach (Jerman), Skype, sistem obrolan dan pesan instan telah menjadi bagian integral dari kehidupan sehari-hari untuk 16,5 juta orang dewasa dan anak-anak, 9 juta menggunakan layanan ini dari kasus per kasus, dan 28 juta tidak menyentuhnya.

Situasinya mungkin berubah, karena sekarang Firefox terintegrasi teknologi komunikasi waktu nyata (WebRTC), serta klien itu sendiri. Memulai obrolan audio dan video sekarang tidak lebih sulit daripada membuka situs web. Layanan seperti Facebook dan Skype, di sisi lain, mengandalkan solusi menggunakan klien terpisah dan membuat akun.

WebRTC tidak hanya mudah digunakan. Metode ini bahkan memungkinkan Anda untuk mengatur koneksi langsung antara dua browser. Dengan demikian, data audio dan video tidak melewati server di mana kemacetan dapat terjadi atau di mana administrator tidak terlalu sensitif tentang privasi atau perlindungan data. Dengan koneksi langsung, WebRTC tidak memerlukan pendaftaran atau akun dengan layanan apa pun.

Untuk memulai percakapan, Anda hanya perlu mengikuti tautan. Komunikasi tetap pribadi karena aliran data dienkripsi. Komunikasi real-time melalui browser, Google mulai aktif terlibat kembali pada tahun 2011, ketika menerbitkan kode sumber implementasi WebRTC-nya.

Tak lama kemudian, Chrome dan Firefox menerima mesin WebRTC mereka sendiri. Saat ini, versi seluler mereka dilengkapi dengan teknologi ini dan mesin WebView 3.6 yang diinstal dengan Android 5.0, yang digunakan oleh aplikasi.

Untuk komunikasi waktu nyata, antarmuka JavaScript yang sesuai harus diimplementasikan di penampil web. Dengan GetUserMedia, perangkat lunak memungkinkan pengambilan dari sumber audio dan video, yaitu webcam dan mikrofon. RTCPeerConnection bertanggung jawab untuk membangun koneksi, serta untuk komunikasi itu sendiri.

Sejalan dengan integrasi browser, kelompok kerja World Wide Web Consortium (W3C) telah mendorong proses standarisasi WebRTC. Itu harus selesai pada tahun 2015.

WebRTC puas dengan sedikit

Menggunakan layanan WebRTC tidak memerlukan banyak sumber daya, karena server hanya menghubungkan sobat. Membangun koneksi juga tidak terlalu sulit. Pertama, browser memberi sinyal ke server WebRTC bahwa ia berencana untuk memulai panggilan. Ini menerima tautan HTTPS dari server - koneksi dienkripsi. Pengguna mengirimkan tautan ini ke lawan bicaranya. Browser kemudian meminta izin kepada pengguna untuk mengakses webcam dan mikrofon.

Untuk membuat koneksi streaming langsung dengan pihak lain, browser menerima alamat IP dan data konfigurasinya dari layanan WebRTC. Peramban web sobat melakukan hal yang sama.

Agar koneksi streaming berfungsi dengan lancar dan berkualitas baik, tiga mesin bekerja di browser. Dua di antaranya mengoptimalkan dan mengompresi data audio dan video, yang ketiga bertanggung jawab atas transportasinya. Ini mengirim data melalui protokol SRTP(Secure Real-time Transport Protocol), yang memungkinkan streaming terenkripsi secara real-time.

Jika koneksi langsung gagal, WebRTC mencari jalur lain. Misalnya, ini terjadi ketika pengaturan jaringan mencegah server STUN untuk dapat melaporkan alamat IP. Standar WebRTC menetapkan bahwa dalam hal ini percakapan akan berlangsung, tetapi dengan penyertaan perantara dari server TURN (Traversal Using Relays di sekitar NAT). Jadi, di situs web netscan.co, Anda dapat memeriksa apakah WebRTC diimplementasikan di komputer Anda dan dengan akses Anda ke Web.

Bagaimana koneksi dibuat

Pertama, Anda perlu mendaftarkan percakapan (1). Layanan WebRTC menyediakan tautan yang perlu dikirim ke lawan bicara. Browser, menggunakan STUNserver, menemukan alamat IP-nya sendiri (2), mengirimkannya ke layanan dan menerima IP mitra untuk membuat koneksi langsung (3). Jika STUN gagal, percakapan dialihkan menggunakan TURNserver (4).

Komunikasi menggunakan teknologi WebRTC di browser diluncurkan menggunakan kode JavaScript. Setelah itu, tiga mesin bertanggung jawab untuk komunikasi: mesin suara dan video mengumpulkan data multimedia dari webcam dan mikrofon, dan mesin transportasi menggabungkan informasi dan mengirimkan aliran dalam bentuk terenkripsi menggunakan Secure Real-time Protocol (SRTP).

Peramban mana yang bekerja dengan WebRTC

Chrome dan Firefox dilengkapi dengan mesin WebRTC yang menggunakan layanan seperti talky.io. Browser Mozilla dapat bekerja secara langsung dengan kliennya sendiri.

Google dan Mozilla terus mengembangkan gagasan komunikasi waktu nyata: Chrome dapat menyelenggarakan konferensi WebRTC dengan banyak peserta, dan klien Hello baru di Firefox dikembangkan dengan bantuan anak perusahaan raksasa telekomunikasi Telefonica. Apple tetap di sela-sela untuk saat ini, Anda seharusnya tidak mengharapkan WebRTC di Safari. Namun, ada banyak aplikasi dan plugin iOS alternatif untuk Safari.

Microsoft mengambil kursus yang sedikit berbeda. Sebagai pemilik layanan Skype yang kompetitif, perusahaan ini tidak akan menyerah begitu saja ke WebRTC. Sebaliknya, Microsoft mengembangkan teknologi yang disebut ORTC (Object Real-Time Communications) untuk Internet Explorer.

Perbedaan dari WebRTC, seperti codec dan protokol yang berbeda untuk menjalin kontak dengan server, kecil dan, seiring waktu, cenderung menjadi tambahan untuk standar WebRTC, yang akan mencakup perbedaan ini. Dengan demikian, hanya Apple yang tertinggal - seperti biasa.

Sebuah foto: perusahaan manufaktur; goodluz/Photolia.com

WebRTC(Web Real-Time Communications) adalah teknologi yang memungkinkan aplikasi Web dan situs web untuk menangkap dan secara selektif mengirimkan aliran media audio dan/atau video, serta bertukar data sewenang-wenang antar browser, tanpa memerlukan perantara. Kumpulan standar yang termasuk dalam teknologi WebRTC memungkinkan pertukaran data dan telekonferensi peer-to-peer tanpa pengguna harus menginstal plug-in atau perangkat lunak pihak ketiga lainnya.

WebRTC terdiri dari beberapa antarmuka pemrograman yang saling terkait (API) dan protokol yang bekerja bersama. Dokumentasi yang akan Anda temukan di sini akan membantu Anda memahami dasar-dasar WebRTC, cara menyiapkan dan menggunakan koneksi data dan media, dan banyak lagi.

Kesesuaian

Karena implementasi WebRTC sedang dalam proses dan setiap browser memiliki fungsionalitas WebRTC, sangat disarankan agar Anda menggunakan perpustakaan polyfill Adapter.js dari Google sebelum Anda mulai mengerjakan kode Anda.

Adapter.js menggunakan wedges dan polyfill untuk menjembatani perbedaan implementasi WebRTC dengan mulus di antara konteks yang mendukungnya. Adapter.js juga menangani prefiks vendor dan perbedaan penamaan properti lainnya, memfasilitasi proses pengembangan WebRTC dengan hasil yang paling konsisten. Perpustakaan juga tersedia sebagai paket NPM.

Untuk eksplorasi lebih lanjut dari library Adapter.js, lihat .

Konsep dan penggunaan WebRTC

WebRTC serbaguna dan, bersama-sama dengan , menyediakan kemampuan multimedia yang kuat untuk Web, termasuk dukungan untuk konferensi audio dan video, berbagi file, tangkapan layar, manajemen identitas, dan interoperabilitas dengan sistem telepon lawas, termasuk dukungan untuk panggilan nada DTMF. Koneksi antar node dapat dibuat tanpa menggunakan driver atau plug-in khusus, dan seringkali tanpa layanan perantara.

Koneksi antara dua node direpresentasikan sebagai objek dari antarmuka RTCPeerConnection. Setelah koneksi dibuat dan dibuka menggunakan objek RTCPeerConnection, aliran media ( MediaStream s) dan/atau saluran data ( RTCDataChannel s) dapat ditambahkan ke koneksi.

Aliran media dapat terdiri dari sejumlah trek (trek) informasi media. Trek ini, diwakili oleh objek antarmuka MediaStreamTrack, dapat berisi satu atau beberapa jenis media, termasuk audio, video, teks (seperti subjudul atau judul bab). Sebagian besar aliran terdiri dari setidaknya satu trek audio (satu trek audio), atau trek video, dan dapat dikirim dan diterima sebagai aliran (media waktu nyata) atau disimpan ke file.

Juga, Anda dapat menggunakan koneksi antara dua node untuk bertukar data sewenang-wenang menggunakan objek antarmuka RTCDataChannel, yang dapat digunakan untuk mentransfer informasi layanan, data stok, paket status game, file transfer, atau saluran transfer data pribadi.

lebih banyak detail dan tautan ke panduan dan tutorial yang relevan diperlukan

Antarmuka WebRTC

Karena fakta bahwa WebRTC menyediakan antarmuka yang bekerja sama untuk melakukan berbagai tugas, kami telah membaginya ke dalam kategori. Lihat indeks alfabet sidebar untuk navigasi cepat.

Pengaturan dan manajemen koneksi

Antarmuka ini digunakan untuk mengatur, membuka, dan mengelola koneksi WebRTC. Mereka mewakili koneksi media peer-to-peer, saluran data, dan antarmuka yang digunakan untuk bertukar informasi tentang kemampuan setiap node untuk memilih konfigurasi terbaik saat membuat koneksi multimedia dua arah.

RTCPeerConnection Mewakili koneksi WebRTC antara komputer lokal dan host jarak jauh. Digunakan untuk menangani transfer data yang berhasil antara dua node. RTCSessionDescription Mewakili parameter sesi. Setiap RTCSessionDescription berisi deskripsi jenis yang menunjukkan bagian mana (penawaran/tanggapan) dari proses negosiasi yang dijelaskannya, dan deskriptor sesi SDP. RTCIceCandidate Mewakili kandidat server pembentukan koneksi Internet (ICE) untuk membuat koneksi RTCPeerConnection. RTCIceTransport Merupakan informasi tentang Internet Connectivity Facility (ICE). RTCPeerConnectionIceEvent Mewakili peristiwa yang terjadi pada kandidat ICE, biasanya RTCPeerConnection . Satu jenis diteruskan ke objek acara ini: icecandidate . RTCRtpSender Mengontrol penyandian dan transmisi data melalui objek bertipe MediaStreamTrack untuk objek bertipe RTCPeerConnection . RTCRtpReceiver Mengontrol penerimaan dan decoding data melalui objek bertipe MediaStreamTrack untuk objek bertipe RTCPeerConnection . RTCTrackEvent Menunjukkan bahwa objek masuk baru dari jenis MediaStreamTrack telah dibuat dan objek jenis RTCRtpReceiver telah ditambahkan ke objek RTCPeerConnection. RTCCertificate Mewakili sertifikat yang digunakan objek RTCPeerConnection. RTCDataChannel Mewakili saluran data dua arah antara dua node koneksi. RTCDataChannelEvent Mewakili peristiwa yang dimunculkan saat objek bertipe RTCDataChannel dilampirkan ke objek bertipe RTCPeerConnection datachannel . RTCDTMFSender Mengontrol pengkodean dan transmisi sinyal Dual Tone Multi-Frequency (DTMF) untuk objek tipe RTCPeerConnection . RTCDTMFToneChangeEvent Menunjukkan acara perubahan nada DTMF yang masuk. Acara ini tidak menggelembung (kecuali ditentukan lain) dan tidak dapat dibatalkan (kecuali ditentukan lain). RTCStatsReport Melaporkan status secara asinkron untuk objek yang diteruskan dari jenis MediaStreamTrack . RTCIdentityProviderRegistrar Mendaftarkan penyedia identitas (idP). RTCIdentityProvider Memungkinkan browser untuk meminta pembuatan atau validasi deklarasi identitas. RTCIdentityAssertion Mewakili ID host jarak jauh dari koneksi saat ini. Jika node belum diinstal dan dikonfirmasi, referensi antarmuka akan mengembalikan null . Itu tidak berubah setelah instalasi. RTCIdentityEvent Mewakili deklarasi penyedia identitas (idP) dari objek peristiwa pengenal. Peristiwa objek bertipe RTCPeerConnection . Satu jenis diteruskan ke event hasil identitas ini. RTCIdentityErrorEvent Mewakili objek peristiwa kesalahan terkait penyedia identitas (idP). Peristiwa objek bertipe RTCPeerConnection . Dua jenis kesalahan diteruskan ke acara ini: idpassertionerror dan idpvalidationerror .

Panduan

Gambaran Umum Arsitektur WebRTC Di bawah API yang digunakan pengembang untuk membuat dan menggunakan WebRTC adalah seperangkat protokol jaringan dan standar koneksi. Ulasan ini adalah contoh dari standar-standar ini. WebRTC memungkinkan Anda untuk mengatur koneksi node-to-node untuk mentransfer data arbitrer, audio, aliran video, atau kombinasi dari semuanya di browser. Dalam artikel ini, kita akan melihat kehidupan sesi WebRTC, mulai dari membuat koneksi dan melanjutkan hingga mengakhirinya saat tidak lagi diperlukan. Tinjauan WebRTC WebRTC API terdiri dari beberapa API dan protokol yang saling terkait yang bekerja bersama untuk menyediakan dukungan bagi pertukaran aliran data dan media antara dua atau lebih node. Artikel ini memberikan ikhtisar singkat tentang masing-masing API ini dan tujuannya. Dasar-Dasar WebRTC Artikel ini akan memandu Anda dalam membangun aplikasi RTC lintas-browser. Pada akhir artikel ini, Anda harus memiliki data yang berfungsi dan saluran media yang berjalan secara point-to-point. Protokol WebRTC Artikel ini memperkenalkan protokol yang telah dibuat API WebRTC. Panduan ini menjelaskan bagaimana Anda dapat menggunakan koneksi node-to-node dan link

Saat ini, WebRTC adalah teknologi "panas" untuk streaming audio dan video di browser. Teknologi konservatif, seperti HTTP Streaming dan Flash, lebih cocok untuk mendistribusikan konten yang direkam (video on demand) dan secara signifikan lebih rendah daripada WebRTC dalam hal siaran real-time dan online, mis. di mana latensi video minimal diperlukan, memungkinkan pemirsa untuk melihat apa yang terjadi "langsung".

Kemungkinan komunikasi real-time berkualitas tinggi berasal dari arsitektur WebRTC itu sendiri, di mana protokol UDP digunakan untuk mengangkut aliran video, yang merupakan dasar standar untuk mentransmisikan video dengan penundaan minimal dan banyak digunakan dalam sistem komunikasi waktu nyata.

Latensi komunikasi penting dalam sistem streaming langsung, webinar, dan aplikasi lain yang memerlukan komunikasi interaktif dengan sumber video, pengguna akhir, dan solusi.

Alasan bagus lainnya untuk mencoba WebRTC jelas merupakan tren. Saat ini, setiap browser Chrome Android mendukung teknologi ini, yang menjamin jutaan perangkat siap menonton siaran tanpa menginstal perangkat lunak dan konfigurasi tambahan apa pun.

Untuk menguji teknologi WebRTC dalam tindakan dan meluncurkan siaran online sederhana di atasnya, kami menggunakan perangkat lunak server Flashphoner WebRTC Media & Broadcasting Server. Fitur tersebut menyatakan kemampuan untuk menyiarkan aliran WebRTC dalam mode satu-ke-banyak, serta dukungan untuk kamera IP dan sistem pengawasan video melalui protokol RTSP; dalam ulasan ini, kami akan fokus pada siaran web-web dan fitur-fiturnya.

Memasang Media & Server Penyiaran WebRTC

Karena tidak ada versi server untuk sistem Windows, dan saya tidak ingin menginstal mesin virtual seperti VMWare + Linux, saya tidak dapat menguji siaran online di komputer Windows rumah saya. Untuk menghemat waktu, kami memutuskan untuk mengambil contoh di cloud hosting seperti ini:

Itu adalah Centos x86_64 versi 6.5 tanpa perangkat lunak pra-instal di pusat data Amsterdam. Jadi, yang kami miliki hanyalah server dan akses ssh ke sana. Bagi mereka yang terbiasa dengan perintah konsol Linux, menginstal server WebRTC menjanjikan untuk menjadi mudah dan tanpa rasa sakit. Jadi apa yang kami lakukan:

1. Unduh arsip:

$wget https://website/download-wcs5-server.tar.gz

2. Membongkar:

$tar -xzf unduh-wcs5-server.tar.gz

3. Install:

$cd FlashphonerWebCallServer

Selama instalasi, masukkan alamat IP server: XXX.XXX.XXX.XXX

4. Aktifkan lisensi:

$cd /usr/local/FlashphonerWebCallServer/bin

$./aktivasi.sh

5. Mulai server WCS:

$service server panggilan web dimulai

6. Periksa log:

$tail - f /usr/local/FlashphonerWebCallServer/logs/flashphoner_manager.log

7. Periksa apakah ada dua proses:

$ps aux | grep Flashphoner

Proses instalasi selesai.

Menguji streaming langsung WebRTC

Menguji siaran ternyata menjadi masalah sederhana. Selain server, ada klien web, yang terdiri dari selusin file Javascript, HTML, dan CSS dan telah kami gunakan ke folder /var/www/html selama fase instalasi. Satu-satunya hal yang harus dilakukan adalah memasukkan alamat IP server ke dalam konfigurasi flashphoner.xml sehingga klien web dapat membuat koneksi ke server melalui Websockets HTML5. Mari kita jelaskan proses pengujiannya.

1. Buka halaman index.html dari klien pengujian di browser Chrome:

2. Untuk memulai siaran, Anda perlu mengklik tombol "Mulai" di tengah layar.
Sebelum melakukan ini, Anda perlu memastikan bahwa webcam terhubung dan siap digunakan. Tidak ada persyaratan khusus untuk webcam, misalnya, kami menggunakan kamera laptop bawaan standar dengan resolusi 1280 × 800.

Browser Chrome pasti akan meminta akses ke kamera dan mikrofon sehingga pengguna mengerti bahwa videonya akan dikirim ke server Internet dan memungkinkannya untuk melakukannya.

3. Antarmuka mewakili siaran streaming video yang berhasil dari kamera ke server WebRTC. Di sudut kanan atas, indikator menunjukkan bahwa aliran menuju ke server, di sudut bawah ada tombol "Stop" untuk berhenti mengirim video.

Lihatlah tautan di bawah ini. Ini berisi pengidentifikasi unik untuk aliran ini, sehingga siapa pun dapat bergabung dengan tampilan. Buka saja tautan ini di browser. Untuk menyalinnya ke clipboard, Anda perlu mengklik tombol "Salin".

Dalam aplikasi nyata seperti webinar, kuliah, siaran video online atau TV interaktif, pengembang harus menerapkan distribusi pengenal ini ke kelompok pemirsa tertentu sehingga mereka dapat terhubung ke aliran yang diinginkan, tetapi ini adalah logika aplikasi. Server Media & Penyiaran WebRTC itu tidak mempengaruhi, tetapi hanya berurusan dengan distribusi video.

5. Sambungan dibuat dan pemirsa melihat aliran di layar. Sekarang dia dapat mengirim tautan ke orang lain, menghentikan pemutaran streaming, atau mengaktifkan mode layar penuh menggunakan kontrol di sudut kanan bawah.

Hasil pengujian server WebRTC untuk siaran online

Selama pengujian, latensi tampak sempurna. Ping ke pusat data sekitar 100 milidetik dan penundaan tidak terlihat oleh mata. Dari sini, kita dapat mengasumsikan bahwa penundaan sebenarnya adalah 100 plus atau minus yang sama beberapa puluh milidetik untuk waktu buffering. Dibandingkan dengan video Flash, Flash tidak bekerja sebaik WebRTC dalam pengujian ini. Jadi, jika Anda menggerakkan tangan Anda di jaringan yang sama, maka gerakan di layar hanya dapat dilihat setelah satu / dua detik.

Mengenai kualitas, kami mencatat bahwa terkadang Anda dapat membedakan kubus pada gerakan. Hal ini sejalan dengan sifat codec VP8 dan tujuan utamanya adalah untuk menyediakan komunikasi video real-time dengan kualitas yang dapat diterima dan tanpa penundaan komunikasi.

Server ini cukup mudah untuk diinstal dan dikonfigurasi, tidak memerlukan keahlian serius untuk menjalankannya, kecuali pengetahuan tentang Linux pada tingkat pengguna tingkat lanjut yang dapat menjalankan perintah dari konsol melalui ssh dan menggunakan editor teks. Hasilnya, kami berhasil menyiapkan siaran online satu-ke-banyak antar browser. Menghubungkan pemirsa tambahan ke aliran juga tidak menimbulkan masalah.

Kualitas siarannya ternyata cukup bisa diterima untuk webinar dan siaran online. Satu-satunya hal yang menimbulkan beberapa pertanyaan adalah resolusi video. Kamera mendukung 1280x800, tetapi resolusi pada gambar uji sangat mirip dengan 640x480. Rupanya, masalah ini perlu diklarifikasi dengan pengembang.

Video tentang siaran pengujian dari webcam
melalui server WebRTC

Tujuan artikel ini adalah untuk berkenalan dengan struktur dan prinsip operasinya pada contoh demo obrolan video peer-to-peer (obrolan video p2p). Untuk tujuan ini, kami akan menggunakan demo obrolan video peer-to-peer multi-pengguna webrtc.io-demo. Itu dapat diunduh dari tautan: https://github.com/webRTC/webrtc.io-demo/tree/master/site .

Perlu dicatat bahwa GitHub adalah situs atau layanan web untuk pengembangan kolaboratif proyek Web. Di atasnya, pengembang dapat memposting kode perkembangan mereka, mendiskusikannya, dan berkomunikasi satu sama lain. Selain itu, beberapa perusahaan IT besar meng-host repositori resmi mereka di situs ini. Layanan ini gratis untuk proyek sumber terbuka. GitHub adalah repositori perpustakaan sumber terbuka.

Jadi, mengunduh dari GitHub contoh demo dari obrolan video peer-to-peer, kami akan menempatkannya di drive C komputer pribadi di direktori yang dibuat untuk aplikasi kami "webrtc_demo".


Beras. satu

Sebagai berikut dari struktur (Gbr. 1), obrolan video peer-to-peer terdiri dari skrip client.js dan server server.js yang diimplementasikan dalam bahasa pemrograman JavaScript. Script (library) webrtc.io.js (CLIENT) - menyediakan organisasi komunikasi real-time antara browser menurut skema peer-to-peer: "client-client", dan webrtc.io.js (CLIENT) dan webrtc .io.js (SERVER), menggunakan protokol WebSocket, mereka menyediakan komunikasi dupleks antara browser dan server web menggunakan arsitektur "client-server".

Skrip webrtc.io.js (SERVER) disertakan dalam pustaka webrtc.io dan terletak di direktori node_modules\webrtc.io\lib. Antarmuka obrolan video index.html diimplementasikan dalam HTML5 dan CSS3. Isi file aplikasi webrtc_demo dapat dilihat dengan salah satu editor html, misalnya "Notepad++".

Kami akan memeriksa prinsip obrolan video di sistem file PC. Untuk menjalankan server (server.js) di PC, Anda perlu menginstal runtime node.js. Node.js memungkinkan Anda menjalankan kode JavaScript di luar browser. Anda dapat mengunduh node.js dari tautan: http://nodejs.org/ (versi v0.10.13 pada 15/07/13). Di halaman utama situs node.org, klik tombol unduh dan buka http://nodejs.org/download/. Untuk pengguna windows, download dulu win.installer (.msi), lalu jalankan win.installer (.msi) di PC, dan instal nodejs dan "npm package manager" di direktori Program Files.




Beras. 2

Dengan demikian, node.js terdiri dari lingkungan pengembangan dan eksekusi JavaScript, serta satu set modul internal yang dapat diinstal menggunakan manajer paket npm atau manajer paket.

Untuk menginstal modul, jalankan perintah berikut di baris perintah dari direktori aplikasi (misalnya, "webrtc_demo"): npm install module_name. Selama instalasi modul, manajer npm membuat folder node_modules di direktori tempat instalasi dilakukan. Saat dijalankan, nodejs secara otomatis menyertakan modul dari direktori node_modules.

Jadi, setelah menginstal node.js, buka baris perintah dan perbarui modul ekspres di folder node_modules dari direktori webrtc_demo menggunakan manajer paket npm:

C:\webrtc_demo>npm install express

Modul ekspres adalah kerangka kerja web untuk node.js atau platform pengembangan aplikasi web. Untuk memiliki akses global ke express, Anda dapat menginstalnya seperti ini: npm install -g express.

Kemudian kami memperbarui modul webrtc.io:

C:\webrtc_demo>npm instal webrtc.io

Kemudian, pada baris perintah, kita memulai server: server.js:

C:\webrtc_demo>nodeserver.js


Beras. 3

Semuanya, server bekerja dengan sukses (Gambar 3). Sekarang, menggunakan browser web, Anda dapat menghubungi server dengan alamat ip dan mengunduh halaman web index.html, dari mana browser web akan mengekstrak kode skrip klien - script.js dan kode skrip webrtc.io.js, dan mengeksekusi mereka. Agar obrolan video peer-to-peer berfungsi (untuk membuat koneksi antara dua browser), perlu dari dua browser yang mendukung webrtc untuk menghubungi server sinyal yang berjalan di node.js melalui ip-address.

Akibatnya, antarmuka bagian klien dari aplikasi komunikasi (obrolan video) akan terbuka dengan permintaan izin untuk mengakses kamera dan mikrofon (Gbr. 4).



Beras. empat

Setelah mengklik tombol "Izinkan", kamera dan mikrofon terhubung untuk komunikasi multimedia. Selain itu, melalui antarmuka obrolan video, Anda dapat berkomunikasi dengan data teks (Gbr. 5).



Beras. 5

Perlu dicatat bahwa. Server memberi sinyal, dan terutama dirancang untuk membuat koneksi antara browser pengguna. Skrip server.js yang menyediakan pensinyalan WebRTC menggunakan Node.js untuk dijalankan.