Kürzlich habe ich aufgrund von Projektanforderungen die WebSocket-Implementierung von NodeJS, socket.io, untersucht, ein weit verbreitetes Framework für WebSocket in NodeJS-Hintergrundanwendungen.
Vorbereitung
1. Installieren Sie socket.io, verwenden Sie den Befehl npm install socket.io
2. Für Windows-Systeme ist eine VC-Kompilierungsumgebung erforderlich, da bei der Installation von socket.io der VC-Code kompiliert wird
Grundprinzipien des Spiels
1. Der Server überwacht die Verbindung des Clients
2. Wenn die Clientverbindung erfolgreich ist, binden Sie die Seite an das Mausbewegungsereignis und verarbeiten Sie das Ereignis, um die aktuellen Koordinaten an den Server
zu senden
3. Der Server speichert ein globales Koordinatenobjekt und verwendet die eindeutige Nummer des Clients als Schlüsselwert
4. Wenn eine neue Verbindung zustande kommt, senden Sie die Koordinaten an andere Clients
5. Wenn der Client die Verbindung trennt, löscht der Server seine Koordinateninformationen und sendet sie an andere Clients
Beginnen Sie mit der Implementierung des Servercodes
Wenn scoket.io die Serverüberwachung einrichtet, muss es sich auf eine http-Verbindung verlassen, um das Upgrade-Protokoll abzuwickeln, daher ist auch ein http-Modul erforderlich. Der Code lautet wie folgt:
var app = http.createServer().listen(9091);
var ws = io.listen(app);
Dann definieren Sie ein globales Koordinatenobjekt
Beginnen Sie mit der Überwachung der Client-Verbindung und fügen Sie eine Broadcast-Funktion hinzu (tatsächlich können Sie die Broadcast-Methode io.sockets.broadcast.emit verwenden, die mit socket.io geliefert wird. Der Kerncode lautet wie folgt:
).1. Der neue Client verbindet sich erfolgreich und sendet die Koordinateninformationen anderer Clients
2. Wenn der Client die Koordinateninformationen aktualisiert, benachrichtigt er andere Clients
3. Der Client trennt die Verbindung und benachrichtigt andere Clients
4. Broadcast-Nachrichtentypen werden in Koordinaten ändern und Koordinaten entfernen
unterteilt
Da es sich bei socket.io um ein benutzerdefiniertes Framework handelt, muss der Client auf socket.io.js verweisen. Der Pfad lautet im Allgemeinen node_modulessocket.ionode_modulessocket.io-clientdist und Komprimieren Sie die beiden Versionen, und Sie können die zusammengeführte Version während der Entwicklung verwenden
Der vollständige Code lautet wie folgt: