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
Vorwort: Dieser Artikel stellt hauptsächlich den ...
Vorwort In diesem Artikel wird erläutert, wie Sie...
veranschaulichen: Mit mysqldump –all-databases we...
Das CentOS-Projekt, ein 100 % kompatibler Neuaufb...
Inhaltsverzeichnis vite Bauen Konfiguration vite....
Inhaltsverzeichnis 1. Materialien vorbereiten 2. ...
Vorwort Wie wir alle wissen, ist Bash (die Bourne...
<br />Ohne Vorwarnung sah ich auf cnBeta Neu...
Inhaltsverzeichnis 1. let-Schlüsselwort 1.1 Grund...
1. Warum wird das Auswerfen nicht empfohlen? 1. W...
Erste Schritte mit Datenvolumes Wenn wir im vorhe...
Inhaltsverzeichnis 1. Bilder 1. Was ist ein Spieg...
Ich habe viele Projekte geschrieben, bei denen de...
Durch dreimaliges Auswendiglernen können Sie sich...
Es gibt zwei Typen: (verschiedene Browser) 1. Verf...