In diesem Artikelbeispiel wird der spezifische Code des JS-Codes zur Implementierung eines Chatrooms für mehrere Personen zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt Designanforderungen: 1) Benutzer müssen sich im Chatraum anmelden, indem sie sich registrieren Der config.js- Code lautet wie folgt module.exports={ "Port":3000, "Host": "127.0.0.1" } Der Code von broadcast.js lautet wie folgt exports.broadcast = Funktion (Daten, Benutzer) { var von=Daten.von; var Nachricht = Daten.Nachricht; Nachricht = von + „sagen Sie: „+Nachricht; //Erstelle die Nachricht var send = { mstype:"Übertragung", Nachricht:Nachricht }; senden = neuer Puffer(JSON.stringify(senden)); //Alle Benutzer in der Benutzergruppe durchlaufen, alle Benutzer auf der Absenderseite für (var Benutzername in Benutzer) { if(Benutzername!=von){ Benutzer[Benutzername].schreiben(senden); } } }; Der Signup.js -Code lautet wie folgt exports.signup = Funktion (Socket, Daten, Benutzer) { //Benutzernamen des registrierten Benutzers abrufen var username=data.username; if(!users[username]){ //Wenn es nicht existiert, speichere den Benutzernamen und den Socket Benutzer[Benutzername]=Socket; var send = { mstype:"Anmelden", Code: 1000, Benutzername:Benutzername, Meldung: „Registrierung erfolgreich“ }; socket.write(JSON.stringify(senden)); }sonst{//cunzai var send = { mstype:"Anmelden", Code: 1001, Meldung: „Der Benutzername ist bereits vergeben. Bitte geben Sie den Benutzernamen erneut ein.“ } socket.write(JSON.stringify(senden)); } }; Der p2p.js -Code lautet wie folgt exports.p2p = Funktion (Socket, Daten, Benutzer) { var von=Daten.von; var zu=Daten.zu; var Nachricht = Daten.Nachricht; var Empfänger=Benutzer[an]; if(!receiver){//Der Empfänger existiert nicht var send={ mstype:"p2p", Code: 2001, Nachricht: „Benutzer“+„existiert nicht“ } socket.write(JSON.stringify(senden)); }anders{ //Wenn vorhanden, Informationen an den Empfänger senden var send={ mstype:"p2p", Code: 2000, von:von, Nachricht:von+"an dich"+Nachricht } Empfänger.schreiben(JSON.stringify(senden)); } }; Servercode //P2P-Chatroom-Server var net=require("net"); var config = erfordern("./config"); var Broadcast = erforderlich("./Broadcast"); var p2p = erfordern("./p2p"); var Anmeldung = erforderlich("./Anmeldung"); var Benutzer={}; var server=net.createServer(); server.on ("Verbindung", Funktion (Socket) { socket.on("Daten",Funktion (Daten) { Daten = JSON.parse(Daten); Schalter (data.mstype) { Fall „Anmeldung“: Anmeldung.Anmeldung(Socket, Daten, Benutzer); brechen; Fall „Broadcast“: broadcast.broadcast(Daten, Benutzer); brechen; Fall "p2p": p2p.p2p(Socket, Daten, Benutzer); brechen; Standard: brechen; } }); socket.on("Fehler",Funktion () { console.log("Ein Client wurde abnormal beendet"); }); }); server.listen(Konfigurations-Port,Konfigurations-Host,Funktion () { console.log("Server beginnt mit dem Lauschen am Port"+config.port+""); }); Der Client-Clientcode lautet wie folgt: var net = erfordern("net"); var config = erfordern("./config"); var Client = net.createConnection({ port:Konfigurationsport, Host:Konfigurationshost }); var Benutzername; Client.on("verbinden",Funktion () { console.log("Bitte geben Sie Ihren Benutzernamen ein:"); process.stdin.on("Daten",Funktion (Daten){ Daten = Daten.toString().trim(); // Prüfen, ob der Benutzer bereits existiert if(!username){ var send = { mstype:"Anmelden", Benutzername:Daten }; Client.write(JSON.stringify(senden)); zurückkehren; } var regex=/(.{1,18}):(.+)/; var Übereinstimmungen = regex = regex.exec(Daten); wenn(Übereinstimmungen){ //Wenn es übereinstimmt, ist es p2p var from=Benutzername;//Der Absender sind Sie selbst. var to=Matches[1];//An wen wird es gesendet? var Message=Matches[2]; //JSON-Formatinformationen erstellen var send={ mstype: "p2p", von:Benutzername, zu:zu, Nachricht:Nachricht }; Client.write(JSON.stringify(senden)); }anders{ //Übertragen var send = { mstype:"Übertragung", von:Benutzername, Nachricht:Daten }; Client.write(JSON.stringify(senden)); } }); }); Client.on("Daten",Funktion (Daten) { Daten = JSON.parse(Daten); Schalter (data.mstype) { Fall „Anmeldung“: var Code = Daten.Code; Schalter (Code) { Fall 1000: Benutzername=Daten.Benutzername; konsole.log(daten.nachricht); brechen; Fall 1001: konsole.log(daten.nachricht); brechen; Standard: brechen; } brechen; Fall „Broadcast“: konsole.log(daten.nachricht); brechen; Fall "p2p": var Code = Daten.Code; Schalter (Code) { Fall 2000: konsole.log(daten.nachricht); brechen; Fall 2001: konsole.log(daten.nachricht); brechen; Standard: brechen; } brechen; Standard: brechen; } }); Client.on("Fehler",Funktion () { console.log("Chatraum ist geschlossen!!"); }) Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Verwenden Sie CSS, um ein Datei-Upload-Muster zu zeichnen
>>: Konfigurationshandbuch für den Lastenausgleich auf Ebene 4 von Nginx
1. Übersicht über Dateiberechtigungen und Eigentu...
Ein einfacher Linux-Ratespiel-Quellcode Spielrege...
Ich möchte in meinem Unternehmen kürzlich einen H...
In diesem Artikel wird der spezifische Code von V...
HTML 4 HTML (nicht XHTML), MIME-Typ ist text/html...
1. MySql-Architektur Bevor wir die Speicher-Engin...
In diesem Artikel wird der spezifische JavaScript...
1. Laden Sie Navicat für MySQL 15 herunter https:...
Inhaltsverzeichnis 1. Was ist Dekonstruktion? 2. ...
Inhaltsverzeichnis 1.1 Java-Umgebung als Vorausse...
In diesem Artikel wird die Zusammensetzung der Ha...
Vorwort Heute werde ich Ihnen ein Holy-Grail-Layo...
1. Installation 1. Herunterladen Gehen Sie zur of...
Der Systemleistungsexperte Brendan D. Gregg hat s...
Die Webseite zeigt 403 Forbidden an Nginx (Yum-In...