Browse Source

1

pull/1/head
李克 3 months ago
parent
commit
99d3a29a0e
  1. 19
      dk-common/common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java

19
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.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.C; 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.redis.utils.RedisUtils;
import org.dromara.common.websocket.dto.WebSocketMessageDto; import org.dromara.common.websocket.dto.WebSocketMessageDto;
import org.dromara.common.websocket.dto.WebSocketMessageResponse; import org.dromara.common.websocket.dto.WebSocketMessageResponse;
@ -93,16 +94,14 @@ public class WebSocketUtils {
.setData(Objects.requireNonNullElse(data, "")) .setData(Objects.requireNonNullElse(data, ""))
.setTimestamp(System.currentTimeMillis()) .setTimestamp(System.currentTimeMillis())
.setBizCode(bizCode); .setBizCode(bizCode);
try { try {
WebSocketMessageDto broadcastMessage = new WebSocketMessageDto();
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
broadcastMessage.setMessage(mapper.writeValueAsString(message)); String jsonString = mapper.writeValueAsString(message);
RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> { WebSocketSessionHolder.getSessionsAll().forEach(key -> {
log.info("WebSocket发送主题订阅消息topic:{} message:{}", WEB_SOCKET_TOPIC, message); WebSocketSession session = WebSocketSessionHolder.getSessions(key);
sendMessage(session, jsonString);
}); });
}catch (Exception e) { }catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
@ -119,13 +118,13 @@ public class WebSocketUtils {
.setTimestamp(System.currentTimeMillis()) .setTimestamp(System.currentTimeMillis())
.setBizCode(bizCode); .setBizCode(bizCode);
try { try {
WebSocketMessageDto broadcastMessage = new WebSocketMessageDto();
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
broadcastMessage.setMessage(mapper.writeValueAsString(message)); String jsonString = mapper.writeValueAsString(message);
RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> { WebSocketSessionHolder.getSessionsAll().forEach(key -> {
log.info("WebSocket发送主题订阅消息topic:{} message:{}", WEB_SOCKET_TOPIC, message); WebSocketSession session = WebSocketSessionHolder.getSessions(key);
sendMessage(session, jsonString);
}); });
}catch (Exception e) { }catch (Exception e) {
e.printStackTrace(); e.printStackTrace();

Loading…
Cancel
Save