WebSocket is a TCP-based protocol that provides a full-duplex communication channel between the client and the server and supports real-time two-way data transmission. Connection establishment, data transmission and closing the connection are the complete process of WebSocket.
-
establish connection:
- The client initiates a WebSocket handshake request. The client sends an HTTP request containing the special
Upgrade
Header, indicating to upgrade the protocol from HTTP to WebSocket.
- After the server receives the handshake request, it performs verification and protocol upgrade processing. The server checks the request header, verifies whether it complies with the WebSocket protocol requirements, and performs necessary protocol upgrades.
- The server returns a handshake response. If the handshake verification passes, the server returns a message containing
The HTTP response in the Upgrade
header has a status code of 101 Switching Protocols, indicating a successful upgrade to the WebSocket protocol.
- The connection is established. The TCP connection between the client and the server has been successfully upgraded to a WebSocket connection, and both parties can begin real-time two-way data transmission.
-
data transmission:
- Clients and servers can use WebSocket connections for two-way communication.
- Clients and servers can exchange data by sending WebSocket messages. Messages can be in text or binary form.
- Messages can be sent via
send()
method is sent and passed
onmessage
Event reception. Both clients and servers can use these methods and events for data transfer.
-
Close connection:
- The client or server can choose to close the WebSocket connection.
- The party that closes the connection sends a special close frame (Close Frame) to the other party.
- After the other party receives the close frame, it sends a close frame in response.
- After both parties receive the close frame, the WebSocket connection between each other is closed.
You need to pay attention to the following points:
- After the WebSocket connection is established, messages can be sent and received between the client and the server at any time. There is no need to establish a new connection for each request like HTTP.
- WebSocket connections are persistent and can maintain communication for a longer period of time.
- WebSocket connections can use the heartbeat mechanism to detect whether the connection is alive.
- WebSocket connections can perform data compression and encryption to improve performance and security.
WebSocket provides real-time, two-way communication and is suitable for applications that require real-time data transmission, such as chat applications and real-time games.
The above is the detailed content of WebSocket: Complete process from establishing connection to closing. For more information, please follow other related articles on the PHP Chinese website!