spring-boot-starter-websocket 搭建一个websoket服务 可以接收参数
时间: 2024-01-16 11:02:07 浏览: 26
首先,需要在pom.xml中添加以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
```
然后,在Spring Boot应用程序中,创建一个WebSocket配置类,并注解为@Configuration和@EnableWebSocket:
```
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(new MyWebSocketHandler(), "/websocket/{param}").setAllowedOrigins("*");
}
}
```
在上面的代码中,我们创建了一个WebSocket处理程序MyWebSocketHandler,并将其注册到WebSocket处理程序注册表中。我们还指定了WebSocket的URL路径为/websocket/{param},其中{param}是一个动态路径变量,可以在连接时传递参数。
接下来,我们创建一个WebSocket处理程序MyWebSocketHandler,并实现WebSocketHandler接口:
```
public class MyWebSocketHandler implements WebSocketHandler {
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
String param = session.getUri().getQuery();
System.out.println("WebSocket connection established with param: " + param);
}
@Override
public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
// handle incoming messages
}
@Override
public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
// handle transport errors
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception {
// handle connection closed
}
@Override
public boolean supportsPartialMessages() {
return false;
}
}
```
在上面的代码中,我们覆盖了WebSocketHandler接口的所有方法。在afterConnectionEstablished方法中,我们获取传递的参数,并在控制台上打印它。在handleMessage方法中,我们可以处理传入的消息。在handleTransportError方法中,我们可以处理传输错误。在afterConnectionClosed方法中,我们可以处理连接关闭。
现在,我们可以启动Spring Boot应用程序,并使用任何WebSocket客户端连接到/websocket/{param}路径。传递的参数将在控制台上显示。