Junior — Middle
Can you explain the working principle of the WebSocket protocol and how it differs from regular HTTP requests?
sobes.tech AI
Answer from AI
The WebSocket protocol provides a full-duplex (two-way) persistent connection between the client and server over a single TCP connection. This allows real-time data exchange without the need for repeated HTTP requests.
How WebSocket works:
- The client initiates a connection to the server via an HTTP request with the header
Upgrade: websocket. - If the server supports WebSocket, it responds with a confirmation and establishes a persistent connection.
- After the connection is established, the client and server can freely exchange messages in both directions without additional HTTP requests.
Differences from regular HTTP requests:
- HTTP is a request-response protocol: the client sends a request, the server responds, and the connection is usually closed.
- WebSocket is a persistent connection that allows the server to send data to the client at any time (push messages).
- WebSocket is more efficient for applications with frequent data exchange, such as chats, games, financial terminals.
Example in Node.js using the ws library:
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', ws => {
ws.on('message', message => {
console.log(`Received message: ${message}`);
ws.send(`Response: ${message}`);
});
});
Thus, WebSocket enables the creation of interactive applications with low latency and constant data exchange.