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

Kann die wiederholbare Leseebene von MySQL Phantomlesevorgänge lösen?

Einführung Als ich mehr über die Datenbanktheorie...

Eine kurze Analyse der Unterschiede zwischen Undo, Redo und Binlog in MySQL

Inhaltsverzeichnis Vorwort 【Protokoll rückgängig ...

Auszeichnungssprachen – Nochmal auflisten

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

So verwenden Sie die ElementUI-Paginierungskomponente Paginierung in Vue

Die Verwendung der ElementUI-Paging-Komponente Pa...

JavaScript zum Erzielen eines Lupeneffekts

In diesem Artikel wird der spezifische Code für J...

web.config (IIS) und .htaccess (Apache) Konfiguration

xml <?xml version="1.0" encoding=&qu...

So aktivieren Sie die MySQL-Remoteverbindung

Aus Sicherheitsgründen erlaubt MySql-Server nur d...

Was ist ein MySQL-Tablespace?

Das Thema, das ich heute mit Ihnen teilen möchte,...