| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package top.haijunit.websocket.utils;
- import lombok.AccessLevel;
- import lombok.NoArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.web.socket.PongMessage;
- import org.springframework.web.socket.TextMessage;
- import org.springframework.web.socket.WebSocketMessage;
- import org.springframework.web.socket.WebSocketSession;
- import top.haijunit.websocket.handler.WebSocketSessionHolder;
- import java.io.IOException;
- /**
- * @author zhanghaijun
- * @date 2023/11/17 17:58
- * @description 工具类
- */
- @Slf4j
- @NoArgsConstructor(access = AccessLevel.PRIVATE)
- public class WebSocketUtils {
- /**
- * 发送消息
- *
- * @param sessionKey session主键 一般为用户id
- * @param message 消息文本
- */
- public static void sendMessage(String sessionKey, String message) {
- WebSocketSession session = WebSocketSessionHolder.getSessions(sessionKey);
- sendMessage(session, message);
- }
- public static void sendPongMessage(WebSocketSession session) {
- sendMessage(session, new PongMessage());
- }
- public static void sendMessage(WebSocketSession session, String message) {
- sendMessage(session, new TextMessage(message));
- }
- private static void sendMessage(WebSocketSession session, WebSocketMessage<?> message) {
- if (session == null || !session.isOpen()) {
- log.error("[send] session会话已经关闭");
- } else {
- try {
- session.sendMessage(message);
- log.info("[send] sessionId: {},message:{}", session.getId(), message);
- } catch (IOException e) {
- log.error("[send] session({}) 发送消息({}) 异常", session, message, e);
- }
- }
- }
- }
|