websocket配置类
时间: 2023-09-29 13:03:05 浏览: 163
websocket_springboot.rar
Websocket 是一种基于 TCP 协议的双向通信协议,通过 Websocket 可以在客户端和服务器之间建立持久连接,实现实时通信。在 Java 中,可以使用 Spring Boot 的 WebSocket 模块来实现 Websocket 的配置。
下面是一个简单的 Websocket 配置类示例:
```
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(myHandler(), "/myHandler").setAllowedOrigins("*");
}
@Bean
public WebSocketHandler myHandler() {
return new MyHandler();
}
}
```
上述代码中,使用 `@Configuration` 注解标记该类为配置类,并使用 `@EnableWebSocket` 注解启用 WebSocket 功能。`WebSocketConfigurer` 接口中的 `registerWebSocketHandlers` 方法用来注册 Websocket 处理器,并指定处理器的 URL 路径。`setAllowedOrigins("*")` 方法用来允许跨域请求。
`MyHandler` 是自定义的 Websocket 处理器,示例代码如下:
```
public class MyHandler extends TextWebSocketHandler {
@Override
public void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
String payload = message.getPayload();
// 处理接收到的消息
session.sendMessage(new TextMessage("Hello, " + payload));
}
}
```
上述代码中,`MyHandler` 继承自 `TextWebSocketHandler`,并重写了 `handleTextMessage` 方法,在该方法中处理接收到的消息并发送响应消息。
需要注意的是,在使用 Spring Boot 的 WebSocket 模块时,需要在页面中使用 JS 代码来建立 Websocket 连接。示例代码如下:
```
var socket = new WebSocket("ws://localhost:8080/myHandler");
socket.onopen = function(event) {
console.log("WebSocket opened.");
};
socket.onmessage = function(event) {
console.log("Received message: " + event.data);
};
socket.onclose = function(event) {
console.log("WebSocket closed.");
};
```
上述代码中,使用 `WebSocket` 对象创建一个 Websocket 连接,并指定服务器的 URL 地址。`onopen`、`onmessage` 和 `onclose` 方法分别用来处理连接建立、接收消息和连接关闭事件。
阅读全文