diff --git a/dk-common/common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java b/dk-common/common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java index 84615e0..bf6b127 100644 --- a/dk-common/common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java +++ b/dk-common/common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java @@ -9,6 +9,7 @@ import lombok.AccessLevel; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.checkerframework.checker.units.qual.C; +import org.dromara.common.json.utils.JsonUtils; import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.websocket.dto.WebSocketMessageDto; import org.dromara.common.websocket.dto.WebSocketMessageResponse; @@ -93,16 +94,14 @@ public class WebSocketUtils { .setData(Objects.requireNonNullElse(data, "")) .setTimestamp(System.currentTimeMillis()) .setBizCode(bizCode); - try { - - WebSocketMessageDto broadcastMessage = new WebSocketMessageDto(); ObjectMapper mapper = new ObjectMapper(); mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); - broadcastMessage.setMessage(mapper.writeValueAsString(message)); - RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> { - log.info("WebSocket发送主题订阅消息topic:{} message:{}", WEB_SOCKET_TOPIC, message); + String jsonString = mapper.writeValueAsString(message); + WebSocketSessionHolder.getSessionsAll().forEach(key -> { + WebSocketSession session = WebSocketSessionHolder.getSessions(key); + sendMessage(session, jsonString); }); }catch (Exception e) { e.printStackTrace(); @@ -119,13 +118,13 @@ public class WebSocketUtils { .setTimestamp(System.currentTimeMillis()) .setBizCode(bizCode); try { - WebSocketMessageDto broadcastMessage = new WebSocketMessageDto(); ObjectMapper mapper = new ObjectMapper(); mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); - broadcastMessage.setMessage(mapper.writeValueAsString(message)); - RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> { - log.info("WebSocket发送主题订阅消息topic:{} message:{}", WEB_SOCKET_TOPIC, message); + String jsonString = mapper.writeValueAsString(message); + WebSocketSessionHolder.getSessionsAll().forEach(key -> { + WebSocketSession session = WebSocketSessionHolder.getSessions(key); + sendMessage(session, jsonString); }); }catch (Exception e) { e.printStackTrace();