Ich habe es noch nicht geschafft, den Signalserver beim Schreiben eines Mehrbenutzer-Chats zu überwinden, und begann, nach vorgefertigten Frameworks zu suchen. Am einfachsten schien mir EasyRTC.
Gemäß den Anweisungen wird alles sehr einfach installiert, sowohl unter Windows als auch unter Linux:
1. Laden Sie Node.js herunter und installieren Sie es.
2. Von Github laden wir easyRTC herunter und gehen in den heruntergeladenen Ordner.
3. Wir geben in der Konsole npm install (ich erinnere mich im Verzeichnis des heruntergeladenen easyRTC-Ordners) die erforderlichen Pakete für Node.js ein
4. Dort starten wir auch den Server in der Konsole: node server.js.
Alle !!! Standardmäßig werden zum Zeitpunkt 8080 Ihres Servers Beispiele für die Verwendung von easyRTC gestartet.
Um Ihren eigenen Chat zu schreiben, müssen Sie socket.io.js und easyrtc.js auf Ihrer Seite verbinden. Wenn Sie nginx verwenden, können Sie wie folgt "proxy":
In der Konfigurationsdatei:
Upstream-BackendEasyRTC {
Server 127.0.0.1:9080;
}}
Im Serverbereich:
location /socket.io {
#proxy_pass http: // 127.0.0.1:9080;
proxy_pass http: // backendEasyRTC;
proxy_http_version 1.1;
proxy_set_header Upgrade $ http_upgrade;
proxy_set_header Verbindung "Upgrade";
proxy_set_header Host $ host;
}}
Socket.io.js und easyrtc.js (die sich im API-Ordner befinden) werden jeweils in die Statik verschoben.
Als nächstes müssen Sie easyRTC konfigurieren:
Ändern Sie in der Datei easyrtc.js easyRTC.webSocket in:
easyRTC.webSocket = io.connect ('http: // your server');
und in der Konfigurationsdatei config.js (am selben Ort wie server.js) ändern Sie den Standardport in Ihren, in meinem Fall 9080:
config.httpPort = 9080;
Verbinden Sie auf Ihrer Seite die erforderlichen Dateien
<script src = "/ socket.io/socket.io.js"> </ script>
<script type = "text / javascript" src = "/ static / js / easyrtc.js"> </ script>
Verschreiben Sie Video-Tags:
Für Remotebenutzer
<video autoplay = "autoplay" id = "remoteVideo1"> </ video>
<video autoplay = "autoplay" id = "remoteVideo2"> </ video>
Und um sich zu zeigen
<video autoplay = "autoplay" id = "localVideo" stumm = "stumm" volume = "0"> </ video>
Wir starten easyRTC am Anfang der Seite:
var maxCALLERS = 3; // Anzahl der Personen im Raum
window.onload - function () {
easyRTC.setLoggedInListener (callEverybodyElse); // Wird ausgelöst, wenn ein neuer Stream webrtc
easyRTC.initManaged ("myroom", "localVideo", ["remoteVideo1", "remoteVideo2], loginSuccess);
// myroom - Der Name des Raums, in dem sich Benutzer befinden
// localVideo - dein Video
// ["remoteVideo1", "remoteVideo2] - wo Streams von Remotebenutzern ausgegeben werden.
// loginSuccess - darin können Sie Ihre Stream-ID herausfinden
}}
Funktion loginSuccess (easyRTCId) {
console.log ('Meine ID' + easyRTCId); // Nützlich zur weiteren Benutzeridentifikation
}}
FunktionsaufrufEverybodyElse (otherPeople) {
easyRTC.setLoggedInListener (null);
var list = [];
var connectCount = 0;
für (var i in otherPeople) {
list.push (i);
}}
// Standardmäßig ist der neue Stream der letzte im Array
Funktion etablConnection (Position) {
Funktion callSuccess () {
connectCount ++;
if (connectCount <maxCALLERS && position> 0) {
etablConnection (Position-1);
}}
}}
Funktion callFailure () {
easyRTC.showError ("CALL-REJECTED", "Von einer anderen Partei abgelehnt");
if (connectCount <maxCALLERS && position> 0) {
etablConnection (Position-1);
}}
}}
easyRTC.call (list [position], callSuccess, callFailure);
}}
if (list.length> 0) {
etablConnection (list.length-1);
}}
}}
Zusätzlich können Sie den Verbindungsport angeben:
easyRTC.setSocketUrl (": 9088");
Bitrate Video:
easyRTC.setVideoBandwidth (40);
Videoauflösung:
easyRTC.setVideoDims (320,180); - Videoauflösung
Dies ist das Minimum, das für den Chat mit mehreren Benutzern erforderlich ist.
Darüber hinaus in den Dateien config.js easyrtc.js sowie in Github und Google Groups.
Vielen Dank, wenn Sie bis zum Ende lesen.
Website:
http://www.easyrtc.com/Github:
https://github.com/priologic/easyrtcGoogle Groups:
https://groups.google.com/d/forum/easyrtc