springboot中用websocket发送信息
时间: 2024-03-22 13:34:56 浏览: 80
在Spring Boot中使用WebSocket发送信息可以通过以下步骤实现:
1. 添加依赖:在`pom.xml`文件中添加WebSocket相关的依赖,例如:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
```
2. 创建WebSocket配置类:创建一个配置类,用于配置WebSocket相关的Bean和处理器。可以使用`@EnableWebSocket`注解启用WebSocket支持,并实现`WebSocketConfigurer`接口来配置WebSocket的处理器和拦截器。
3. 创建WebSocket处理器:创建一个类,实现`WebSocketHandler`接口,重写相应的方法来处理WebSocket连接、消息发送和接收等操作。
4. 配置WebSocket处理器:在配置类中注册WebSocket处理器,可以使用`registerHandler()`方法将处理器注册到指定的路径上。
5. 创建前端页面:在前端页面中使用JavaScript代码来建立WebSocket连接,并发送和接收消息。
下面是一个简单的示例代码:
```java
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(myHandler(), "/websocket").setAllowedOrigins("*");
}
@Bean
public WebSocketHandler myHandler() {
return new MyHandler();
}
}
@Component
public class MyHandler implements WebSocketHandler {
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
// 连接建立后的处理逻辑
}
@Override
public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
// 处理接收到的消息
}
@Override
public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
// 处理传输错误
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception {
// 连接关闭后的处理逻辑
}
@Override
public boolean supportsPartialMessages() {
return false;
}
}
```
在前端页面中,可以使用JavaScript代码来建立WebSocket连接,并发送和接收消息。例如:
```javascript
var socket = new WebSocket("ws://localhost:8080/websocket");
socket.onopen = function() {
// 连接建立后的处理逻辑
};
socket.onmessage = function(event) {
var message = event.data;
// 处理接收到的消息
};
socket.onclose = function(event) {
// 连接关闭后的处理逻辑
};
function sendMessage() {
var message = "Hello, WebSocket!";
socket.send(message);
}
```
阅读全文