在springboot中使用websocket
时间: 2023-10-24 20:11:21 浏览: 95
使用Spring Boot创建WebSocket应用程序非常容易。以下是基本步骤:
1. 添加Spring Boot WebSocket依赖项
在Maven项目中,您需要在pom.xml中添加以下依赖项:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
```
2. 创建WebSocket配置类
创建一个WebSocket配置类,该类应使用@Configuration注释。
```
@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处理程序,并将其映射到“/myHandler”URL。
3. 创建WebSocket处理程序
创建一个类,它实现WebSocketHandler接口。
```
public class MyHandler implements WebSocketHandler {
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
System.out.println("Connection established");
}
@Override
public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
System.out.println("Message received: " + message.getPayload());
}
@Override
public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
System.out.println("Transport error: " + exception.getMessage());
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception {
System.out.println("Connection closed");
}
@Override
public boolean supportsPartialMessages() {
return false;
}
}
```
在上面的代码中,我们实现了WebSocketHandler接口的方法。在afterConnectionEstablished方法中,我们处理连接建立事件。在handleMessage方法中,我们处理接收到的消息。在handleTransportError方法中,我们处理传输错误事件。在afterConnectionClosed方法中,我们处理连接关闭事件。
4. 创建JavaScript客户端
创建一个JavaScript客户端,它将连接到WebSocket服务器并发送消息。
```
var socket = new WebSocket("ws://localhost:8080/myHandler");
socket.onopen = function(event) {
console.log("Connection established");
socket.send("Hello, server!");
};
socket.onmessage = function(event) {
console.log("Message received: " + event.data);
};
socket.onerror = function(event) {
console.log("Error: " + event.data);
};
socket.onclose = function(event) {
console.log("Connection closed");
};
```
在上面的代码中,我们创建了一个WebSocket对象,并将其连接到“ws://localhost:8080/myHandler”URL。在onopen方法中,我们发送消息。在onmessage方法中,我们处理接收到的消息。在onerror方法中,我们处理错误事件。在onclose方法中,我们处理连接关闭事件。
5. 运行应用程序
现在,您可以运行应用程序并使用浏览器打开JavaScript客户端。
您应该能够在控制台中看到连接建立、消息接收和连接关闭事件。
阅读全文