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的连接建立、消息接收、连接关闭事件。