package org.dromara.common.sse.utils;
|
|
import lombok.AccessLevel;
|
import lombok.NoArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.dromara.common.core.utils.SpringUtils;
|
import org.dromara.common.sse.core.SseEmitterManager;
|
import org.dromara.common.sse.dto.SseMessageDto;
|
|
/**
|
* SSE工具类
|
*
|
* @author Lion Li
|
*/
|
@Slf4j
|
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
public class SseMessageUtils {
|
|
private final static SseEmitterManager MANAGER = SpringUtils.getBean(SseEmitterManager.class);
|
|
/**
|
* 向指定的WebSocket会话发送消息
|
*
|
* @param userId 要发送消息的用户id
|
* @param message 要发送的消息内容
|
*/
|
public static void sendMessage(Long userId, String message) {
|
MANAGER.sendMessage(userId, message);
|
}
|
|
/**
|
* 本机全用户会话发送消息
|
*
|
* @param message 要发送的消息内容
|
*/
|
public static void sendMessage(String message) {
|
MANAGER.sendMessage(message);
|
}
|
|
/**
|
* 发布SSE订阅消息
|
*
|
* @param sseMessageDto 要发布的SSE消息对象
|
*/
|
public static void publishMessage(SseMessageDto sseMessageDto) {
|
MANAGER.publishMessage(sseMessageDto);
|
}
|
|
/**
|
* 向所有的用户发布订阅的消息(群发)
|
*
|
* @param message 要发布的消息内容
|
*/
|
public static void publishAll(String message) {
|
MANAGER.publishAll(message);
|
}
|
|
}
|