Node+Socket realisiert einfache Chatroom-Funktion

Node+Socket realisiert einfache Chatroom-Funktion

In diesem Artikel wird der spezifische Code von Node+Socket zur Implementierung eines einfachen Chatrooms zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt

Server

const net = erfordern('net')
const server = net.createServer()

//Benutzerliste let clients = []

//Auf Verbindungen warten server.on('connection',client=>{
    client.on('Daten',(Block)=>{
        let data = chunk.toString()
        wenn(data.match(/login:(.*)/)){
            let name = data.match(/login:(.*)/)[1]
            Clientname = Name
            Clients.push(Client)
            console.log(`Benutzer ${name} ist online`)
        }anders{
            für (const Client von Clients) {
                wenn(client.name!==JSON.parse(data).name){
                    client.write(Daten)
                }

            }
        }
    })

    client.on('schließen',()=>{
        console.log(`Benutzer ${client.name} ist offline`)
    })

    client.on('Fehler',()=>{
        console.log(`Für Benutzer ${client.name} ist ein Fehler aufgetreten`)
    })

})

server.on('Fehler',(err)=>{
    console.log('Serverfehler',err)
})

server.on('schließen',()=>{
    console.log('Server herunterfahren')
})

server.listen(9527,()=>{
    console.log("Server gestartet")
})

Kunde

const net = erfordern('net')
const readline = erforderlich('readline')
//Eingabeinformationen lesen const rl = readline.createInterface({
    Eingabe: process.stdin,
    Ausgabe: process.stdout
});

//Name const name = Prozess.argv[2]
//Mit dem Server verbinden const client = net.createConnection({port:9527},()=>{
    console.log(Name+'Mit Server verbinden');
    client.write(`login:${name}`)
    Clientname = Name
    //Starten Sie das Senden von Informationen sendMsg(client)
})

client.on('Daten', (Block) => {

    let Daten = JSON.parse(chunk.toString())
    wenn(Daten){
        Konsole.log(`[${data.name}] : ${data.msg}`)
    }
});
client.on('Ende', () => {
    console.log('Verbindung zum Server getrennt');
});
client.on('Fehler', () => {
    console.log('Serverfehler');
});

//Rekursive Ausgabefunktion sendMsg(client){

    rl.question('',(Zeile)=>{
        Client.schreiben(JSON.stringify({
            Name:Client.Name,
            msg:Zeile
        }))
        sendMsg(Client)
    })
}

Demo

Server

Kunde 1

Kunde 2

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:
  • NodeJS implementiert eine Chatroom-Funktion
  • Schritte zum Erstellen eines Chatrooms für mehrere Personen mit nodejs+express
  • Nodejs realisiert eine einfache Chatroom-Funktion für mehrere Räume
  • Implementierung eines Mehrpersonen-Chatrooms basierend auf Nodejs mit socket.io
  • Node.js WebSocket verwendet die Socket.io-Bibliothek, um einen Echtzeit-Chatroom zu implementieren
  • So verwenden Sie das Node.js Net-Modul, um einen Befehlszeilen-Chatroom für mehrere Personen zu realisieren
  • Verwenden von Sockets zum Erstellen privater und öffentlicher Chatrooms in Node.js
  • AngularJS+Node.js zur Implementierung eines Online-Chatrooms
  • Verwenden Sie Angular, Nodejs und socket.io, um Chatrooms und Mehrpersonen-Chatrooms zu erstellen
  • Eine einfache Chatroom-Funktion zum Teilen, implementiert durch nodejs

<<:  MySql 8.0.16-win64 Installations-Tutorial

>>:  Implementierung eines Docker-Cross-Host-Netzwerks (manuell)

Artikel empfehlen

Ein genauerer Blick auf SQL-Injection

1. Was ist SQL-Injection? SQL-Injection ist eine ...

HTML-Basis-URL-Tag

Seine Funktion besteht darin, einen globalen Stil ...

DOCTYPE Dokumenttypdeklaration (unbedingt lesenswert für Webseiten-Liebhaber)

DOCTYPE-DEKLARATION: Oben auf jeder Seite, die Sie...

Implementierung der Parametersprungfunktion im Vue-Projekt

Seitenbeschreibung:​ Hauptseite: Name —> shish...

MySQL-Lernnotizen zum Umgang mit doppelten Daten

MySQL verarbeitet doppelte Daten Einige MySQL-Tab...

Docker-Dateispeicherpfad, Befehlsvorgang zum Starten des Containers abrufen

Der Container wurde bereits erstellt. So erfahren...

5 Möglichkeiten zum Löschen oder Entfernen großer Dateiinhalte in Linux

Beim Arbeiten mit Dateien im Linux-Terminal möcht...

MySQL 8.0.16 Installations- und Konfigurations-Tutorial unter CentOS7

Deinstallieren Sie die alte MySQL-Version (übersp...

Detaillierte Erklärung der Ansichten in MySQL

Sicht: Ansichten in MySQL haben viele Ähnlichkeit...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.17 winx64

Windows-Installation mysql-5.7.17-winx64.zip Meth...

MySQL-Transaktionsdetails

Inhaltsverzeichnis Einführung Vier Merkmale von T...

Tutorial zur Installation einer MySQL-ZIP-Datei

In diesem Artikel wird die spezifische Methode zu...