package com.qianwen.core.websocket.distribute; import cn.hutool.core.collection.CollectionUtil; import java.util.List; import com.qianwen.core.websocket.config.WebSocketMessageSender; import com.qianwen.core.websocket.holder.WebSocketSessionHolder; public interface MessageSender { default void doSend(MessageDO messageDO) { Boolean needBroadcast = messageDO.getNeedBroadcast(); String messageText = messageDO.getMessageText(); List sessionKeys = messageDO.getSessionKeys(); if (needBroadcast != null && needBroadcast.booleanValue()) { WebSocketMessageSender.broadcast(messageText); } else if (CollectionUtil.isNotEmpty(sessionKeys)) { for (Object sessionKey : sessionKeys) { WebSocketMessageSender.send(sessionKey, messageText); } } else if (CollectionUtil.isNotEmpty(messageDO.getSessionIds())) { WebSocketSessionHolder.getSessions().stream().filter(session -> { return messageDO.getSessionIds().contains(session.getId()); }).forEach(session2 -> { WebSocketMessageSender.send(session2, messageText); }); } } }