Spring WebSocket 提供了一个简单且强大的方式来构建全双工、实时通信的应用程序。WebSocket 是一种网络通信协议,允许服务器和客户端之间进行全双工通信。
特点
- 实时性:WebSocket 连接一旦建立,服务器和客户端之间就可以实时交换数据。
- 持久连接:WebSocket 连接在建立后,除非客户端或服务器关闭连接,否则将一直保持打开状态。
- 轻量级:WebSocket 协议本身开销很小,传输效率高。
快速开始
在 Spring Boot 应用中,你可以使用以下步骤来创建一个 WebSocket 服务:
- 添加依赖:在你的
pom.xml
文件中添加 Spring WebSocket 依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
- 配置 WebSocket Endpoint:创建一个实现了
WebSocketConfigurer
接口的类,并配置 WebSocket Endpoint。
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketMessageBrokerRegistry registry) {
registry.addHandler(messageHandler(), "/ws").setAllowedOrigins("*");
}
@Bean
public TextWebSocketHandler messageHandler() {
return new MyTextWebSocketHandler();
}
}
- 实现 WebSocket Handler:创建一个实现了
TextWebSocketHandler
接口的类,处理 WebSocket 消息。
@Controller
public class MyTextWebSocketHandler extends TextWebSocketHandler {
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
// 处理消息
}
}
- 发送消息:使用
SimpleteWebSocketMessageBroker
发送消息。
@Autowired
private SimpleteWebSocketMessageBroker broker;
public void sendMessage(String destination, String message) {
broker.sendDestination(message, destination);
}
- 接收消息:在客户端连接到 WebSocket 后,你可以接收消息。
var socket = new WebSocket('ws://localhost:8080/ws');
socket.onmessage = function(event) {
console.log(event.data);
};
扩展阅读
更多关于 Spring WebSocket 的信息,请访问我们的 Spring WebSocket 教程。
Spring WebSocket 示例