WebSocket是一种在单个TCP连接上进行全双工通信的协议。它使得客户端和服务器之间的数据交换变得更加简单、实时、高效。相比传统的HTTP协议,WebSocket可以在客户端和服务器之间建立一个持久连接,而不是每次都需要重新建立连接,从而减少了网络数据传输的开销。
在前端使用WebSocket需要以下步骤:
下面是一个基本的WebSocket示例:
javascript
// 创建WebSocket对象
const socket = new WebSocket('ws://localhost:8080');
// 建立连接
socket.addEventListener('open', function (event) {
console.log('WebSocket连接已建立');
// 发送数据
socket.send('Hello Server!');
});
// 接收数据
socket.addEventListener('message', function (event) {
console.log('接收到服务器发来的消息:', event.data);
});
// 关闭连接
socket.addEventListener('close', function (event) {
console.log('WebSocket连接已关闭');
});
在后端使用WebSocket需要使用WebSocket API进行处理。WebSocket API包含了两个重要的类:ServerWebSocket和ClientWebSocket。ServerWebSocket用于处理服务器端的WebSocket连接,而ClientWebSocket用于处理客户端的WebSocket连接。
下面是一个使用Java实现的WebSocket服务器端示例:
java
@ServerEndpoint("/websocket")
public class WebSocketServer {
@OnOpen
public void onOpen(Session session) {
System.out.println("WebSocket连接已建立");
}
@OnMessage
public void onMessage(String message, Session session) {
System.out.println("接收到客户端发来的消息:" + message);
session.getBasicRemote().sendText("Hello Client!");
}
@OnClose
public void onClose(Session session) {
System.out.println("WebSocket连接已关闭");
}
}
在这个示例中,@ServerEndpoint注解用于指定WebSocket的URL地址,onOpen、onMessage、onClose分别对应WebSocket的连接建立、消息接收、连接关闭事件。