Spring WebSocket 是 Spring Framework 的一部分,它提供了创建WebSocket应用程序的支持。WebSocket 是一种在单个长连接上进行全双工通信的协议,它允许服务器和客户端之间进行实时数据交换。
基本概念
- WebSocket协议:它允许服务器和客户端之间建立一个持久的连接,这个连接在数据传输期间始终保持开放状态。
- Spring WebSocket:Spring 提供了 WebSocket 的支持,使得在 Spring 应用程序中创建 WebSocket 应用变得简单。
快速开始
以下是一个简单的 Spring WebSocket 应用程序示例:
import org.springframework.stereotype.Component;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;
@Component
public class MyWebSocketHandler extends TextWebSocketHandler {
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
session.sendMessage(new TextMessage("Hello, " + message.getPayload()));
}
}
配置 WebSocket
在 Spring Boot 应用中,可以通过以下步骤配置 WebSocket:
添加依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency>
配置 WebSocket:
@Configuration public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(myWebSocketHandler(), "/ws").setAllowedOrigins("*"); } @Bean public MyWebSocketHandler myWebSocketHandler() { return new MyWebSocketHandler(); } }
启用 WebSocket:
@SpringBootApplication public class WebSocketApplication { public static void main(String[] args) { SpringApplication.run(WebSocketApplication.class, args); } }
客户端示例
以下是一个简单的 HTML 客户端示例:
<!DOCTYPE html>
<html>
<head>
<title>WebSocket Client</title>
<script>
var ws = new WebSocket("ws://localhost:8080/ws");
ws.onmessage = function(event) {
console.log(event.data);
};
ws.onopen = function(event) {
ws.send("Hello, Server!");
};
</script>
</head>
<body>
<h1>WebSocket Client</h1>
</body>
</html>
扩展阅读
更多关于 Spring WebSocket 的信息,请参阅我们的Spring WebSocket 教程。
[center]