You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package com.iflytop.gd.app.config;
import jakarta.websocket.*; import jakarta.websocket.server.ServerEndpoint; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component;
import java.util.Collections; import java.util.HashSet; import java.util.Set;
@Slf4j @ServerEndpoint("/ws") @Component public class WebSocketServer {
private static final Set<Session> sessions = Collections.synchronizedSet(new HashSet<>());
public static void sendMessageToClients(String message) { synchronized (sessions) { for (Session session : sessions) { try { session.getBasicRemote().sendText(message); } catch (Exception e) { log.error("发送给客户端失败 sessionId={}", session.getId(), e); } } } }
@OnOpen public void onOpen(Session session) { sessions.add(session); log.info("新连接加入,sessionId={}", session.getId()); }
@OnMessage public void onMessage(String message, Session session) { // log.info("收到消息 sessionId={},内容:{}", session.getId(), message);
}
@OnClose public void onClose(Session session) { sessions.remove(session); log.info("连接已关闭,sessionId={}", session.getId()); }
@OnError public void onError(Session session, Throwable error) { log.error("发生错误,sessionId={}", session.getId(), error); } }
|