لم أتمكن بعد من التغلب على خادم الإشارة عند كتابة دردشة متعددة المستخدمين ، لذلك بدأت في البحث عن أطر جاهزة. أسهل من كل شيء يبدو لي EasyRTC.
وفقًا للتعليمات ، يتم تثبيت كل شيء بكل بساطة ، على نظامي Windows و Linux:
1. قم بتنزيل وتثبيت Node.js.
2. من Github ، نقوم بتنزيل easyRTC ، انتقل إلى المجلد الذي تم تنزيله.
3. نكتب تثبيت وحدة التحكم في npm (أذكر في دليل مجلد easyRTC الذي تم تنزيله) سيتم تثبيت الحزم الضرورية لـ Node.js
4. هناك نبدأ أيضا الخادم في وحدة التحكم: عقدة server.js.
كل شيء !!! الآن ، بشكل افتراضي ، في وقت 8080 من الخادم الخاص بك ، يتم إطلاق أمثلة على استخدام easyRTC.
لكتابة الدردشة الخاصة بك ، تحتاج إلى توصيل socket.io.js و easyrtc.js على صفحتك ، عند استخدام nginx يمكنك "وكيل" كما يلي:
في ملف التكوين:
الخلفية المنبع EasyRTC {
الخادم 127.0.0.1:9080 ؛
}
في قسم الخادم:
الموقع / الموقع. {
#proxy_pass http: // 127.0.0.1:9080؛
proxy_pass http: // backendEasyRTC؛
proxy_http_version 1.1؛
proxy_set_header ترقية $ http_upgrade؛
proxy_set_header اتصال "ترقية" ؛
proxy_set_header Host $ host؛
}
إسقاط Socket.io.js و easyrtc.js (الموجود في مجلد api) في الإحصائيات ، على التوالي.
بعد ذلك ، تحتاج إلى تكوين easyRTC:
في ملف easyrtc.js ، قم بتغيير easyRTC.webSocket إلى:
easyRTC.webSocket = io.connect ('http: // your server')؛
وفي ملف التكوين config.js (الموجود في نفس المكان مثل server.js) ، قم بتغيير المنفذ القياسي إلى المنفذ الخاص بك ، في حالتي 9080:
config.httpPort = 9080 ؛
على صفحتك ، قم بتوصيل الملفات الضرورية
<script src = "/ socket.io/socket.io.js"> </script>
<script type = "text / javascript" src = "/ static / js / easyrtc.js"> </script>
وصف علامات الفيديو:
للمستخدمين عن بعد
<video autoplay = "autoplay" id = "remoteVideo1"> </video>
<video autoplay = "autoplay" id = "remoteVideo2"> </video>
ولعرض نفسك
<video autoplay = "autoplay" id = "localVideo" muted = "muted" volume = "0"> </video>
نبدأ easyRTC في بداية الصفحة:
فار maxCALLERS = 3 ؛ // عدد الأشخاص في الغرفة
window.onload - function () {
easyRTC.setLoggedInListener (callEverybodyElse)؛ حرائق عندما دفق جديد webrtc
easyRTC.init Managed ("myroom"، "localVideo"، ["remoteVideo1"، "remoteVideo2]، loginSuccess)؛
// myroom - اسم الغرفة حيث سيكون المستخدمون
// localVideo - الفيديو الخاص بك
// ["remoteVideo1" ، "remoteVideo2] - حيث يمكنك إخراج تدفقات المستخدمين عن بعد.
// loginSuccess - في ذلك يمكنك معرفة معرف الدفق الخاص بك
}
الوظيفة loginSuccess (easyRTCId) {
console.log ('My id' + easyRTCId)؛ // مفيد لمزيد من تعريف المستخدم
}
وظيفة الاتصالالكل فردالآخرين (الآخرين)
easyRTC.setLoggedInListener (خالية)؛
فار قائمة = [] ؛
var connectCount = 0؛
من أجل (var i in otherPeople) {
list.push (i) ؛
}
// بشكل افتراضي ، الدفق الجديد هو الأخير في الصفيف
وظيفة إنشاء اتصال (موقف) {
وظيفة callSuccess () {
connectCount ++ ؛
if (connectCount <maxCALLERS && position> 0) {
تأسيس الاتصال (الموضع 1) ؛
}
}
وظيفة callFailure () {
easyRTC.showError ("تم الاتصال بالرفض" ، "تم رفضه من قبل الطرف الآخر") ؛
if (connectCount <maxCALLERS && position> 0) {
تأسيس الاتصال (الموضع 1) ؛
}
}
easyRTC.call (قائمة [موقف] ، callSuccess ، callFailure) ؛
}
if (list.length> 0) {
تأسيس الاتصال (list.length-1) ؛
}
}
بالإضافة إلى ذلك ، يمكنك تحديد منفذ الاتصال:
easyRTC.setSocketUrl (": 9088") ؛
معدل البت الفيديو:
easyRTC.setVideo عرض النطاق الترددي (40) ؛
دقة الفيديو:
easyRTC.setVideoDims (320،180)؛ - دقة الفيديو
هذا هو الحد الأدنى المطلوب للدردشة متعددة المستخدمين.
بالإضافة إلى ذلك ، في ملفات config.js easyrtc.js ، وكذلك على Github ومجموعات Google.
شكرا لك إذا قرأت حتى النهاية.
الموقع الإلكتروني:
http://www.easyrtc.com/جيثب:
https://github.com/priologic/easyrtcمجموعات Google:
https://groups.google.com/d/forum/easyrtc