springboot中WebSocket 前后端连接实例
时间: 2024-05-09 20:21:50 浏览: 95
好的,关于springboot中WebSocket前后端连接实例,我可以给你提供一个简单的示例代码:
前端代码:
```
var socket = new WebSocket("ws://localhost:8080/ws"); // 连接后端WebSocket服务
socket.onopen = function() {
console.log("连接成功!");
}
socket.onmessage = function(evt) {
console.log("收到服务端消息:" + evt.data);
}
socket.onclose = function() {
console.log("连接关闭!");
}
function sendMessage() {
var message = document.getElementById("input_message").value;
socket.send(message); // 发送消息到后端
}
```
后端代码:
```
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(new MyWebSocketHandler(), "/ws").setAllowedOrigins("*"); // 注册WebSocket处理器,并指定WebSocket请求路径
}
}
class MyWebSocketHandler extends TextWebSocketHandler {
private final List<WebSocketSession> sessions = new ArrayList<>();
// WebSocket连接建立后执行
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
sessions.add(session); // 添加到会话列表中
}
// WebSocket连接关闭后执行
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
sessions.remove(session); // 从会话列表中移除
}
// 收到WebSocket消息后执行
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
for (WebSocketSession s : sessions) {
if (s.isOpen()) {
s.sendMessage(message); // 将消息广播给所有连接的客户端
}
}
}
}
```
这样,我们就可以在客户端和服务端之间建立WebSocket连接,并实现消息的收发和广播。当然,这只是一个简单的示例,实际应用中还需要考虑更多的安全、性能、容错等方面的问题。
阅读全文