springboot整合websocket 代码
时间: 2023-10-17 20:03:53 浏览: 102
以下是一个简单的Spring Boot应用程序,它使用WebSocket进行通信:
1. 添加依赖
在pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
```
2. 创建WebSocket配置类
创建一个WebSocket配置类,用于配置WebSocket:
```
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(new MyWebSocketHandler(), "/my-websocket");
}
}
```
在这个配置类中,我们注册了一个WebSocket处理程序(MyWebSocketHandler),并将其映射到“/my-websocket”端点上。
3. 创建WebSocket处理程序
创建一个WebSocket处理程序,用于处理WebSocket请求:
```
public class MyWebSocketHandler extends TextWebSocketHandler {
private final List<WebSocketSession> sessions = new CopyOnWriteArrayList<>();
@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(new TextMessage("Received message: " + message.getPayload()));
}
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
sessions.remove(session);
}
}
```
在这个处理程序中,我们创建了一个会话列表,用于存储所有连接到WebSocket的会话。当一个新的WebSocket会话建立时,我们将其添加到会话列表中。当我们收到一个消息时,我们遍历会话列表,并将消息发送回每个会话。当WebSocket会话关闭时,我们从会话列表中删除该会话。
4. 创建WebSocket客户端
创建一个WebSocket客户端,用于连接到WebSocket服务器并发送消息:
```
public class MyWebSocketClient extends WebSocketClient {
public MyWebSocketClient(URI serverUri, Draft draft) {
super(serverUri, draft);
}
@Override
public void onOpen(ServerHandshake handshakedata) {
send("Hello, server!");
}
@Override
public void onMessage(String message) {
System.out.println("Received message: " + message);
}
@Override
public void onClose(int code, String reason, boolean remote) {
System.out.println("WebSocket closed");
}
@Override
public void onError(Exception ex) {
System.out.println("WebSocket error");
}
}
```
在这个WebSocket客户端中,我们定义了一些回调方法,用于处理WebSocket事件。当WebSocket连接建立时,我们发送一条消息。当我们收到一条消息时,我们将其打印到控制台上。当WebSocket连接关闭时,我们打印一条消息。当WebSocket发生错误时,我们打印一条消息。
5. 启动WebSocket服务器
最后,我们在Spring Boot应用程序的main方法中启动WebSocket服务器:
```
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
WebSocketServerFactory factory = new DefaultWebSocketServerFactory();
WebSocketServer server = factory.createWebSocketServer();
server.start();
}
}
```
在这个main方法中,我们启动了Spring Boot应用程序,并创建了一个WebSocket服务器。我们使用默认的WebSocket服务器工厂来创建WebSocket服务器。我们调用start方法来启动WebSocket服务器。
现在,我们就完成了Spring Boot应用程序和WebSocket服务器的配置。运行应用程序,并使用WebSocket客户端连接到WebSocket服务器。您应该能够发送和接收消息。
阅读全文