In diesem Artikel wird der spezifische Code von Vue + Express + Socket zur Realisierung der Chat-Funktion zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt Implementierung der ChatfunktionSpezifische Funktionen Nur um die Funktion zu realisieren, ohne die Schnittstelle zu verschönern 1. Geben Sie die Nachricht ein und klicken Sie auf Senden. Alle Benutzer können die folgende Nachricht erhalten. 2. Geben Sie die Benutzer-ID ein und klicken Sie auf „Verbinden“, um eine Verbindung zum entsprechenden Chat herzustellen. Geben Sie in einer anderen Schnittstelle die Benutzer-ID der Seite von gerade eben ein, geben Sie den Inhalt ein und klicken Sie auf „An die angegebene Person senden“. Dann kann die Seite von gerade eben ausgedruckt werden, aber andere Seiten werden nicht empfangen, wodurch die Funktion des privaten Chats realisiert wird. 3. Die Inhaltsanzeige des privaten Chats ist nicht speziell implementiert, aber das Empfangen und Senden von Nachrichten kann implementiert werden. Um die Inhaltsanzeige des privaten Chats zu implementieren, können Sie eine weitere private Chatseite hinzufügen Screenshots Projektvorbereitung Es wird nur die Socket-Vorbereitung vorgestellt, die Konstruktion von Vue und Express wird nicht vorgestellt. Frontend-Buchse Installieren npm ich vue-socket.io --speichern Import Importieren Sie VueSocketIO aus „vue-socket.io“. Hintergrundbuchse Installieren npm ich socket.io --speichern Import Zum vom Express-Generator erstellten Ordner „bin/www“ hinzufügen var io = erfordern('socket.io')(Server)' io.on('Verbindung', (Socket) => { socket.on('Minenräumung', (Daten) => { konsole.log(Daten); }); }); Die spezifischen Screenshots sind wie folgt: ProjektrealisierungVue Code HTML Code <div Klasse="Startseite"> Benutzer-ID: <input type="text" v-model="userid"> Spitzname: <input type="text" v-model="name"> Nachricht: <input type="text" v-model="msg" /> <button @click="send">Senden</button> <button @click="join">Verbinden</button> <button @click="sendmsg">An angegebene Person senden</button> <ul> <li v-for="(Artikel,Index) in Chatliste" :Schlüssel="Artikelname + Index"> {{ item.name }} sagt: {{ item.msg }} </li> </ul> </div> JS-Code Standard exportieren { Name: "Home", Daten() { zurückkehren { Benutzer: [], Nachricht: "", Chatliste: [], Name: '', Benutzer-ID: '' }; }, Steckdosen: { // Mit dem Hintergrund-Socket verbinden verbinden() { console.log('Socket verbunden'); }, // Benutzer-Hintergrundaufruf, Daten hinzufügen sendMessage(data) { konsole.log(Daten); this.chatList.push(Daten) }, // Benutzer-Hintergrundaufruf, Daten drucken receivemsg(data) { console.log('Empfangsnachricht'); konsole.log(Daten); } }, Methoden: { // Sende eine Nachricht in den Hintergrund send() { //Verwende emit, um die Nachrichtenmethode im Hintergrund-Socket aufzurufen this.$socket.emit("message", { Benutzer-ID: 100, Name: dieser.Name, Nachricht: diese.Nachricht }); }, // Benutzerverbindung herstellen join() { dies.$socket.emit("beitreten", { Benutzer-ID: diese.Benutzer-ID }); }, // Senden Sie eine Nachricht an das Backend für private Nachrichten sendmsg() { dies.$socket.emit("sendmsg", { Benutzer-ID: diese.Benutzer-ID, Nachricht: diese.Nachricht }); } } }; Express-Code Fügen Sie der gerade in der WWW-Datei definierten Verbindung den folgenden Code hinzu // Wird verwendet, um den Socket jedes Benutzers zu speichern, um die private Chat-Funktion zu implementieren let arrAllSocket = {} // Eine Socket-Verbindung herstellen io.on('connection', (socket) => { console.log('Verbunden'); // Konsole.log(Socket); // Die Join-Funktion wird von Benutzern zum Herstellen einer Verbindung verwendet socket.on('join', function (obj) { Konsole.log(Obj.Benutzer-ID + "beitreten") // Speichere den Verbindungsstatus jedes Benutzers für private Nachrichten arrAllSocket[obj.userid] = socket }) // Der Funktionsname zum Empfangen von Nachrichten, die vom Vordergrund gesendet werden, lautet message socket.on('Nachricht', (Daten) => { konsole.log(Daten); //Senden Sie die Nachricht zurück an die Rezeption (rufen Sie die in der Rezeption definierte Methode auf). Der Funktionsname lautet sendMessage io.emit('sendMessage', Daten); }); // Private Nachricht socket.on('sendmsg', function (data) { konsole.log(Daten); // Benutzerverbindung abfragen let target = arrAllSocket[data.userid] wenn (Ziel) { //Senden Sie eine Nachricht an die angegebene Person target.emit('receivemsg', data) } }) }) Hintergrundcode-KapselungDa die WWW-Datei nicht zu viel Code enthalten sollte, wird dieser Teil des Codes gekapselt 1. Erstellen Sie im Projektverzeichnis einen io-Ordner mit der folgenden Struktur 2. Verschieben Sie den vorherigen Teil des Codes in io/index.js Der Code lautet wie folgt // Übergebe den Server als Parameter an module.exports = function (server) { var io = erfordern('socket.io')(Server); // Wird verwendet, um den Socket jedes Benutzers zu speichern, um die private Chat-Funktion zu implementieren. let arrAllSocket = {} // Eine Socket-Verbindung herstellen io.on('connection', (socket) => { console.log('Verbunden'); // Konsole.log(Socket); // Die Join-Funktion wird von Benutzern zum Herstellen einer Verbindung verwendet socket.on('join', function (obj) { Konsole.log(Obj.Benutzer-ID + "beitreten") // Speichere den Verbindungsstatus jedes Benutzers für private Nachrichten arrAllSocket[obj.userid] = socket }) // Der Funktionsname zum Empfangen von Nachrichten, die vom Vordergrund gesendet werden, lautet message socket.on('Nachricht', (Daten) => { konsole.log(Daten); //Senden Sie die Nachricht zurück an die Rezeption (rufen Sie die in der Rezeption definierte Methode auf). Der Funktionsname lautet sendMessage io.emit('sendMessage', Daten); }); // Private Nachricht socket.on('sendmsg', function (data) { konsole.log(Daten); // Benutzerverbindung abfragen let target = arrAllSocket[data.userid] wenn (Ziel) { //Senden Sie eine Nachricht an die angegebene Person target.emit('receivemsg', data) } }) }) } Verwenden Sie abschließend den folgenden Code in der WWW-Datei, um die Datei einzuführen var io = erfordern('../io') io(Server) An dieser Stelle sind die Grundfunktionen des Chattens realisiert. Notieren Sie es zur späteren Verwendung. 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:
|
<<: MySQL-Optimierungsstrategie (empfohlen)
>>: Detaillierte Anweisungen zur Installation von Jenkins auf Ubuntu 16.04
js-Arrays sind wahrscheinlich jedem bekannt, da s...
Vorwort Dieser Artikel beschreibt, wie ich Docker...
1. MySQL-Benutzerverwaltung [Beispiel 1.1] Melden...
Vorwort Ich bin einmal auf ein schwieriges Proble...
Als ich kürzlich Docker lernte, stellte ich fest,...
1. Stellen Sie zunächst einige häufig verwendete ...
Inhaltsverzeichnis 1. Einleitung 2. Grundkonzepte...
Die Reihenfolge, in der Objekte Methoden aufrufen...
= Nur beim Setzen und Aktualisieren wirkt es wie ...
So setzen Sie den Anfangswert der Auto-Increment-...
Fallstricke bei der Projektimplementierung Beim B...
Die Optimierung großer Datenbankdatenmengen ist e...
F: Wenn Sie Outlook oder IE verwenden, wird beim ...
Ein Zustandsübergangsdiagramm eines Docker-Contai...
Dieser Artikel stellt die von Webdesign-Meistern ...