WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,它提供了实时性和低延迟的通信方式。相比于传统的 HTTP 请求-响应模式,WebSocket 可以让服务器主动向客户端发送数据,而不需要等待客户端请求。这使得 WebSocket 适合实时聊天、在线游戏、股票行情等需要快速、稳定地传输数据的应用场景。
使用 WebSocket 需要以下步骤:
创建一个 WebSocket 对象,并指定连接的 URL。
监听 WebSocket 的事件,如 onopen、onmessage、onclose 和 onerror 等。
发送消息到服务器,可以使用 send() 方法。
关闭 WebSocket 连接,可以使用 close() 方法。
在服务端,则需要创建对应的 WebSocket 服务来处理客户端的连接和消息。常用的语言和框架有 Node.js 的 ws 模块、Java 的 javax.websocket 和 Spring WebSockets 等。
示例代码:
客户端:
var socket = new WebSocket("ws://localhost:8080/");
socket.onopen = function(event) {
console.log("WebSocket connected!");
};
socket.onmessage = function(event) {
console.log("Received message: " + event.data);
};
socket.onerror = function(event) {
console.log("Error: " + event.data);
};
socket.onclose = function(event) {
console.log("WebSocket closed.");
};
socket.send("Hello, server!");
socket.close();
服务端(使用 Node.js 的 ws 模块):
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
console.log("WebSocket connected!");
ws.on('message', function incoming(message) {
console.log("Received message: " + message);
ws.send("Hello, client!");
});
ws.on('error', function error(err) {
console.log("Error: " + err);
});
ws.on('close', function close() {
console.log("WebSocket closed.");
});
});