写一个springboot的websocket
时间: 2023-08-13 08:11:59 浏览: 104
springboot-websocket
当然可以!下面是一个简单的示例,展示了如何在Spring Boot中使用WebSocket。
首先,确保在pom.xml文件中添加以下依赖:
```xml
<dependencies>
<!-- Spring Boot WebSocket -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
</dependencies>
```
接下来,创建一个WebSocket处理器类,用于处理WebSocket连接和消息:
```java
import org.springframework.stereotype.Component;
import org.springframework.web.socket.handler.TextWebSocketHandler;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.TextMessage;
@Component
public class MyWebSocketHandler extends TextWebSocketHandler {
@Override
public void afterConnectionEstablished(WebSocketSession session) {
// 当建立WebSocket连接时调用此方法
// 可以在这里处理一些初始化操作,比如将session存储起来以便后续使用
}
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) {
// 当接收到文本消息时调用此方法
String receivedMessage = message.getPayload();
// 在这里可以处理接收到的消息,并发送响应消息
String responseMessage = "Received: " + receivedMessage;
try {
session.sendMessage(new TextMessage(responseMessage));
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) {
// 当关闭WebSocket连接时调用此方法
// 可以在这里进行一些清理操作,比如将session从存储中移除
}
}
```
然后,创建一个WebSocket配置类,用于注册WebSocket处理器:
```java
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Autowired
private MyWebSocketHandler myWebSocketHandler;
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(myWebSocketHandler, "/websocket").setAllowedOrigins("*");
}
}
```
最后,在Spring Boot应用的入口类上添加`@EnableWebSocket`注解,以启用WebSocket:
```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
@SpringBootApplication
@ComponentScan(basePackages = "com.example")
@EnableWebSocket
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
```
现在,你可以通过连接到`ws://localhost:8080/websocket`来测试你的Spring Boot WebSocket应用程序。当你发送一条消息后,它将收到一个响应消息。
这只是一个简单的示例,你可以根据需要扩展和定制它。希望对你有帮助!
阅读全文