WebSocket ist ein TCP-basiertes Protokoll, das einen Vollduplex-Kommunikationskanal zwischen dem Client und dem Server bereitstellt und die bidirektionale Datenübertragung in Echtzeit unterstützt. Verbindungsaufbau, Datenübertragung und Verbindungsabbau sind die kompletten Prozesse von WebSocket.
-
Eine Verbindung herstellen:
- Der Client initiiert eine WebSocket-Handshake-Anfrage. Der Client sendet eine HTTP-Anfrage mit dem speziellen
Upgrade
Header, der das Protokoll-Upgrade von HTTP auf WebSocket anzeigt.
- Nach Erhalt der Handshake-Anfrage führt der Server eine Überprüfung und Protokollaktualisierung durch. Der Server überprüft den Anforderungsheader, stellt fest, ob er den Anforderungen des WebSocket-Protokolls entspricht, und führt erforderliche Protokollaktualisierungen durch.
- Der Server gibt eine Handshake-Antwort zurück. Wenn die Handshake-Überprüfung erfolgreich ist, gibt der Server eine Nachricht mit
zurück
Upgrade
Die HTTP-Antwort im Header hat den Statuscode 101 Switching Protocols, was auf ein erfolgreiches Upgrade auf das WebSocket-Protokoll hinweist.
- Die Verbindung ist hergestellt. Die TCP-Verbindung zwischen dem Client und dem Server wurde erfolgreich auf eine WebSocket-Verbindung aktualisiert, und beide Parteien können mit der bidirektionalen Datenübertragung in Echtzeit beginnen.
-
Datenübertragung:
- Client und Server können die WebSocket-Verbindung für die bidirektionale Kommunikation nutzen.
- Client und Server können Daten austauschen, indem sie WebSocket-Nachrichten senden. Nachrichten können in Text- oder Binärform vorliegen.
- Nachrichten können über
gesendet werden
send()
Methode gesendet und bestanden
onmessage
Veranstaltungsempfang. Sowohl Clients als auch Server können diese Methoden und Ereignisse zur Datenübertragung nutzen.
-
Enge Verbindung:
- Der Client oder Server kann die WebSocket-Verbindung schließen.
- Der Teilnehmer, der die Verbindung schließt, sendet einen speziellen Close Frame an den anderen Teilnehmer.
- Nachdem die andere Partei den Abschlussrahmen erhalten hat, sendet sie als Antwort einen Abschlussrahmen.
- Nachdem beide Parteien den Close-Frame erhalten haben, wird die WebSocket-Verbindung untereinander geschlossen.
Sie müssen auf folgende Punkte achten:
- Nachdem die WebSocket-Verbindung hergestellt wurde, können jederzeit Nachrichten zwischen dem Client und dem Server gesendet und empfangen werden. Es ist nicht wie bei HTTP erforderlich, für jede Anfrage eine neue Verbindung herzustellen.
- WebSocket-Verbindungen sind dauerhaft und können die Kommunikation über einen längeren Zeitraum aufrechterhalten.
- WebSocket-Verbindungen können mithilfe des Heartbeat-Mechanismus erkennen, ob die Verbindung aktiv ist.
- WebSocket-Verbindungen können Datenkomprimierung und -verschlüsselung durchführen, um Leistung und Sicherheit zu verbessern.
WebSocket bietet bidirektionale Kommunikation in Echtzeit und eignet sich für Anwendungen, die eine Echtzeit-Datenübertragung erfordern, wie z. B. Chat-Anwendungen und Echtzeitspiele.
Das obige ist der detaillierte Inhalt vonWebSocket: Vollständiger Prozess vom Verbindungsaufbau bis zum Schließen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!