|
|
@ -0,0 +1,51 @@ |
|
|
|
package com.qyft.gd.service; |
|
|
|
|
|
|
|
|
|
|
|
import jakarta.websocket.*; |
|
|
|
import jakarta.websocket.server.ServerEndpoint; |
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
import java.util.Collections; |
|
|
|
import java.util.HashSet; |
|
|
|
import java.util.Set; |
|
|
|
|
|
|
|
@ServerEndpoint("/ws") |
|
|
|
@Component |
|
|
|
public class WebSocketServer { |
|
|
|
|
|
|
|
private static final Logger log = LoggerFactory.getLogger(WebSocketServer.class); |
|
|
|
|
|
|
|
private static final Set<Session> sessions = Collections.synchronizedSet(new HashSet<>()); |
|
|
|
|
|
|
|
@OnOpen |
|
|
|
public void onOpen(Session session) { |
|
|
|
sessions.add(session); |
|
|
|
} |
|
|
|
|
|
|
|
@OnMessage |
|
|
|
public void onMessage(String message, Session session) { |
|
|
|
} |
|
|
|
|
|
|
|
@OnClose |
|
|
|
public void onClose(Session session) { |
|
|
|
sessions.remove(session); // 移除关闭连接的 Session |
|
|
|
} |
|
|
|
|
|
|
|
@OnError |
|
|
|
public void onError(Throwable error) { |
|
|
|
} |
|
|
|
|
|
|
|
public static void sendMessageToClients(String message) { |
|
|
|
synchronized (sessions) { |
|
|
|
for (Session session : sessions) { |
|
|
|
try { |
|
|
|
session.getBasicRemote().sendText(message); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |