返回
让 Websocket 开发更轻松:全套 SpringBoot 模板指南
后端
2023-09-04 21:25:49
前言
WebSocket 是一种全双工的通信协议,能够实现客户端和服务器之间的实时双向通信,广泛应用于各种实时交互场景。本文将介绍如何使用 SpringBoot 构建一个 WebSocket 应用,提供一个完整的代码模板,包含后端和前端的实现,帮助你快速入门。
后端搭建
- 引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
- 创建 WebSocket 配置类
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(new MyWebSocketHandler(), "/websocket");
}
}
- 实现 WebSocket 消息处理器
public class MyWebSocketHandler implements WebSocketHandler {
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
System.out.println("连接已建立");
}
@Override
public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
String payload = (String) message.getPayload();
System.out.println("收到消息: " + payload);
session.sendMessage(new TextMessage("已收到消息: " + payload));
}
@Override
public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
System.out.println("连接出现异常");
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception {
System.out.println("连接已关闭");
}
}
前端测试
- 引入依赖
<script src="https://cdn.jsdelivr.net/npm/sockjs-client@1.5.1/dist/sockjs.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/stompjs@latest/lib/stomp.min.js"></script>
- 创建 WebSocket 连接
var socket = new SockJS('/websocket');
var stompClient = Stomp.over(socket);
stompClient.connect({}, function () {
console.log('已连接');
});
- 发送消息
stompClient.send("/app/send", {}, JSON.stringify({message: 'Hello WebSocket!'}));
运行测试
在启动 SpringBoot 应用后,打开浏览器,访问 http://localhost:8080/websocket.html
,即可进行 WebSocket 测试。在输入框中输入消息并点击发送按钮,即可向服务器发送消息。
结语
本指南提供了完整的 SpringBoot WebSocket 模板,包含后端和前端的实现,帮助你快速搭建 WebSocket 应用。你可以在此基础上进一步扩展和定制,满足你的实际需求。持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第22天,点击查看活动详情