Spring集成socket
时间: 2024-01-31 16:04:21 浏览: 15
Spring提供了对WebSocket的支持,可以在Spring中轻松地实现WebSocket应用程序。下面是一个简单的示例,展示了如何使用Spring集成WebSocket。
1. 添加依赖
首先,需要在Spring项目中添加以下依赖:
```
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-websocket</artifactId>
<version>5.2.7.RELEASE</version>
</dependency>
```
2. 配置WebSocket
在Spring中配置WebSocket很简单,只需要添加以下配置类:
```
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(new WebSocketHandler(), "/ws").setAllowedOrigins("*");
}
}
```
在这个配置类中,我们注册了一个WebSocketHandler,并指定了其处理的URL为/ws。我们还使用setAllowedOrigins("*")方法来允许跨域请求。
3. 实现WebSocketHandler
接下来,需要实现一个WebSocketHandler来处理WebSocket请求。以下是一个简单的示例:
```
public class WebSocketHandler extends TextWebSocketHandler {
private List<WebSocketSession> sessions = new ArrayList<>();
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
sessions.add(session);
}
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
for (WebSocketSession s : sessions) {
s.sendMessage(message);
}
}
}
```
在这个示例中,我们维护了一个WebSocketSession列表,以便在新的WebSocket连接建立时添加新的会话。在handleTextMessage方法中,我们将接收到的消息广播给所有连接的客户端。
4. 测试WebSocket
现在,可以使用任何WebSocket客户端测试WebSocket应用程序。以下是一个简单的示例,使用JavaScript作为WebSocket客户端:
```
var socket = new WebSocket("ws://localhost:8080/ws");
socket.onmessage = function(event) {
console.log("Received message: " + event.data);
};
socket.send("Hello, world!");
```
在这个示例中,我们创建了一个WebSocket连接到URL ws://localhost:8080/ws,并在连接建立后发送一条消息。我们还使用onmessage方法来处理接收到的消息。