diff --git a/continew-starter-messaging/continew-starter-messaging-websocket/src/main/java/top/continew/starter/messaging/websocket/dao/WebSocketSessionDao.java b/continew-starter-messaging/continew-starter-messaging-websocket/src/main/java/top/continew/starter/messaging/websocket/dao/WebSocketSessionDao.java index e24ddc42..0726a045 100644 --- a/continew-starter-messaging/continew-starter-messaging-websocket/src/main/java/top/continew/starter/messaging/websocket/dao/WebSocketSessionDao.java +++ b/continew-starter-messaging/continew-starter-messaging-websocket/src/main/java/top/continew/starter/messaging/websocket/dao/WebSocketSessionDao.java @@ -18,6 +18,8 @@ package top.continew.starter.messaging.websocket.dao; import org.springframework.web.socket.WebSocketSession; +import java.util.Collection; + /** * WebSocket 会话 DAO * @@ -48,4 +50,12 @@ public interface WebSocketSessionDao { * @return 会话信息 */ WebSocketSession get(String key); + + /** + * 获取所有会话 + * + * @return 所有会话 + * @since 2.12.1 + */ + Collection listAll(); } diff --git a/continew-starter-messaging/continew-starter-messaging-websocket/src/main/java/top/continew/starter/messaging/websocket/dao/WebSocketSessionDaoDefaultImpl.java b/continew-starter-messaging/continew-starter-messaging-websocket/src/main/java/top/continew/starter/messaging/websocket/dao/WebSocketSessionDaoDefaultImpl.java index f83a81b7..3e5ed211 100644 --- a/continew-starter-messaging/continew-starter-messaging-websocket/src/main/java/top/continew/starter/messaging/websocket/dao/WebSocketSessionDaoDefaultImpl.java +++ b/continew-starter-messaging/continew-starter-messaging-websocket/src/main/java/top/continew/starter/messaging/websocket/dao/WebSocketSessionDaoDefaultImpl.java @@ -18,6 +18,7 @@ package top.continew.starter.messaging.websocket.dao; import org.springframework.web.socket.WebSocketSession; +import java.util.Collection; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -45,4 +46,9 @@ public class WebSocketSessionDaoDefaultImpl implements WebSocketSessionDao { public WebSocketSession get(String key) { return SESSION_MAP.get(key); } + + @Override + public Collection listAll() { + return SESSION_MAP.values(); + } } diff --git a/continew-starter-messaging/continew-starter-messaging-websocket/src/main/java/top/continew/starter/messaging/websocket/util/WebSocketUtils.java b/continew-starter-messaging/continew-starter-messaging-websocket/src/main/java/top/continew/starter/messaging/websocket/util/WebSocketUtils.java index a56685ed..eb085288 100644 --- a/continew-starter-messaging/continew-starter-messaging-websocket/src/main/java/top/continew/starter/messaging/websocket/util/WebSocketUtils.java +++ b/continew-starter-messaging/continew-starter-messaging-websocket/src/main/java/top/continew/starter/messaging/websocket/util/WebSocketUtils.java @@ -62,6 +62,16 @@ public class WebSocketUtils { sendMessage(session, new TextMessage(message)); } + /** + * 发送消息给所有客户端 + * + * @param message 消息内容 + * @since 2.12.1 + */ + public static void sendMessage(String message) { + SESSION_DAO.listAll().forEach(session -> sendMessage(session, message)); + } + /** * 发送消息 *