springboot websocket demo
时间: 2023-09-14 17:07:40 浏览: 116
好的,下面是一个简单的 Spring Boot WebSocket 示例:
1. 首先,我们需要在 `pom.xml` 文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
```
2. 接下来,我们需要创建一个 WebSocket 配置类,用于配置 WebSocket 相关的内容。可以参考下面的代码:
```java
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(myHandler(), "/myHandler");
}
@Bean
public WebSocketHandler myHandler() {
return new MyHandler();
}
}
```
其中,`MyHandler` 是我们自己定义的一个 WebSocket 处理器,它会处理客户端的 WebSocket 请求。
3. 接下来,我们需要实现 `MyHandler` 类。以下是一个简单的示例:
```java
public class MyHandler extends TextWebSocketHandler {
private List<WebSocketSession> sessions = new CopyOnWriteArrayList<>();
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
sessions.add(session);
System.out.println("Client connected: " + session.getId());
}
@Override
public void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
System.out.println("Message received: " + message.getPayload());
for (WebSocketSession s : sessions) {
s.sendMessage(message);
}
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
sessions.remove(session);
System.out.println("Client disconnected: " + session.getId());
}
}
```
在上面的代码中,我们定义了一个 `sessions` 列表,用于保存所有与服务器建立 WebSocket 连接的客户端。当有新的客户端连接时,我们会将其添加到 `sessions` 列表中。当有客户端发送消息时,我们会将消息发送给所有已连接的客户端。当客户端断开连接时,我们会将其从 `sessions` 列表中移除。
4. 最后,我们需要在浏览器中创建一个 WebSocket 连接,以便与服务器进行通信。可以参考下面的代码:
```javascript
var ws = new WebSocket("ws://localhost:8080/myHandler");
ws.onopen = function() {
console.log("Connected to WebSocket.");
};
ws.onmessage = function(event) {
console.log("Message received: " + event.data);
};
ws.onclose = function() {
console.log("Disconnected from WebSocket.");
};
ws.send("Hello, server!");
```
在上面的代码中,我们首先创建了一个 WebSocket 对象,并指定了连接的 URL。当连接成功建立时,会调用 `onopen` 函数。当收到服务器发送的消息时,会调用 `onmessage` 函数。当连接关闭时,会调用 `onclose` 函数。我们可以调用 `send` 方法向服务器发送消息。
这就是一个简单的 Spring Boot WebSocket 示例。你可以根据自己的需求进行修改和扩展。
阅读全文