Saya belum berhasil mengatasi server sinyal saat menulis obrolan multi-pengguna, jadi saya mulai mencari kerangka kerja yang sudah jadi. Bagi saya yang paling mudah adalah EasyRTC.
Menurut instruksi, semuanya diinstal dengan sangat sederhana, baik di Windows maupun di Linux:
1. Unduh dan instal Node.js.
2. Dari Github, kami mengunduh easyRTC, pergi ke folder yang diunduh.
3. Kami mengetik di konsol npm install (saya ingat di direktori folder easyRTC yang diunduh) paket yang diperlukan untuk Node.js akan diinstal
4. Di sana kami juga memulai server di konsol: node server.js.
Semua !!! Sekarang, secara default, pada saat 8080 server Anda, contoh penggunaan easyRTC diluncurkan.
Untuk menulis obrolan Anda sendiri, Anda perlu menghubungkan socket.io.js dan easyrtc.js di halaman Anda, saat menggunakan nginx Anda dapat "proxy" sebagai berikut:
Dalam file konfigurasi:
upend backendEasyRTC {
server 127.0.0.1:9080;
}
Di bagian server:
location /socket.io {
#proxy_pass http: // 127.0.0.1:9080;
proxy_pass http: // backendEasyRTC;
proxy_http_version 1.1;
proxy_set_header Tingkatkan $ http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $ host;
}
Socket.io.js dan easyrtc.js (yang terletak di folder api) masing-masing jatuh ke statika.
Selanjutnya, Anda perlu mengonfigurasi easyRTC:
Dalam file easyrtc.js, ubah easyRTC.webSocket ke:
easyRTC.webSocket = io.connect ('http: // server Anda');
dan dalam file konfigurasi config.js (terletak di tempat yang sama dengan server.js) ubah port standar ke milik Anda, dalam kasus saya 9080:
config.httpPort = 9080;
Di halaman Anda, sambungkan file yang diperlukan
<script src = "/ socket.io/socket.io.js"> </script>
<script type = "text / javascript" src = "/ static / js / easyrtc.js"> </script>
Resep tag video:
Untuk pengguna jarak jauh
<video autoplay = "autoplay" id = "remoteVideo1"> </video>
<video autoplay = "autoplay" id = "remoteVideo2"> </video>
Dan untuk menampilkan diri sendiri
<video autoplay = "autoplay" id = "localVideo" diredam = "diredam" volume = "0"> </video>
Kami memulai easyRTC di awal halaman:
var maxCALLERS = 3; // Jumlah orang di ruangan itu
window.onload - function () {
easyRTC.setLoggedInListener (callEverybodyElse); // Memicu ketika webrtc aliran baru
easyRTC.initManaged ("myroom", "localVideo", ["remoteVideo1", "remoteVideo2], loginSuccess);
// myroom - nama ruangan tempat pengguna berada
// localVideo - video Anda
// ["remoteVideo1", "remoteVideo2] - tempat output stream pengguna jarak jauh.
// loginSuccess - di dalamnya Anda dapat mengetahui id aliran Anda
}
fungsi loginSuccess (easyRTCId) {
console.log ('My id' + easyRTCId); // Berguna untuk identifikasi pengguna lebih lanjut
}
function callEverybodyElse (otherPeople) {
easyRTC.setLoggedInListener (null);
daftar var = [];
var connectCount = 0;
untuk (var i di orang lain) {
list.push (i);
}
// Secara default, aliran baru adalah yang terakhir dalam array
function establishmentConnection (posisi) {
function callSuccess () {
connectCount ++;
if (connectCount <maxCALLERS && position> 0) {
EstablishConnection (posisi-1);
}
}
function callFailure () {
easyRTC.showError ("CALL-REJECTED", "Ditolak oleh pihak lain");
if (connectCount <maxCALLERS && position> 0) {
EstablishConnection (posisi-1);
}
}
easyRTC.call (daftar [posisi], callSuccess, callFailure);
}
if (list.length> 0) {
establishmentConnection (list.length-1);
}
}
Selain itu, Anda dapat menentukan port koneksi:
easyRTC.setSocketUrl (": 9088");
Video bitrate:
easyRTC.setVideoBandwidth (40);
Resolusi Video:
easyRTC.setVideoDims (320.180); - resolusi video
Ini adalah persyaratan minimum untuk obrolan multi-pengguna.
Selain itu, dalam file config.js easyrtc.js, serta di Github dan Grup Google.
Terima kasih jika Anda membaca sampai akhir.
Situs web:
http://www.easyrtc.com/Github:
https://github.com/priologic/easyrtcGoogle Groups:
https://groups.google.com/d/forum/easyrtc