From 075fd4606d34f942abc3b3b090d583b82f1996ba Mon Sep 17 00:00:00 2001 From: rays <1615175118@qq.com> Date: Thu, 3 Jun 2021 16:34:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9SocketApi=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E6=9E=9A=E4=B8=BE=E4=B8=BA=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E4=B8=B2=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roses/kernel/socket/api/SocketOperatorApi.java | 14 ++++++++------ .../websocket/operator/WebSocketOperator.java | 12 ++++++------ .../kernel/message/db/MessageDbServiceImpl.java | 2 +- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/kernel-d-socket/socket-api/src/main/java/cn/stylefeng/roses/kernel/socket/api/SocketOperatorApi.java b/kernel-d-socket/socket-api/src/main/java/cn/stylefeng/roses/kernel/socket/api/SocketOperatorApi.java index 2ccc58e5e..5202c6bd1 100644 --- a/kernel-d-socket/socket-api/src/main/java/cn/stylefeng/roses/kernel/socket/api/SocketOperatorApi.java +++ b/kernel-d-socket/socket-api/src/main/java/cn/stylefeng/roses/kernel/socket/api/SocketOperatorApi.java @@ -16,28 +16,30 @@ public interface SocketOperatorApi { /** * 发送消息到指定会话 * - * @param userId 用户ID - * @param msg 消息体 + * @param msgType 消息类型可参考{@link cn.stylefeng.roses.kernel.socket.api.enums}枚举类 + * @param userId 用户ID + * @param msg 消息体 * @author majianguo * @date 2021/6/2 上午9:35 **/ - void sendMsgOfUserSession(ServerMessageTypeEnum msgType, String userId, Object msg); + void sendMsgOfUserSession(String msgType, String userId, Object msg); /** * 发送消息到所有会话 * - * @param msg 消息体 + * @param msgType 消息类型可参考{@link cn.stylefeng.roses.kernel.socket.api.enums}枚举类 + * @param msg 消息体 * @author majianguo * @date 2021/6/2 上午9:35 **/ - void sendMsgOfAllUserSession(ServerMessageTypeEnum msgType, Object msg); + void sendMsgOfAllUserSession(String msgType, Object msg); /** * 监听指定类型消息 *

* 1.该方法每调用一次即注册一个监听,同一个消息类型多次调用只有最后一次生效 * - * @param msgType 消息类型 + * @param msgType 消息类型可参考{@link cn.stylefeng.roses.kernel.socket.api.enums}枚举类 * @param callbackInterface 消息监听器 * @author majianguo * @date 2021/6/2 上午9:54 diff --git a/kernel-d-socket/socket-sdk-websocket/src/main/java/cn/stylefeng/roses/kernel/socket/websocket/operator/WebSocketOperator.java b/kernel-d-socket/socket-sdk-websocket/src/main/java/cn/stylefeng/roses/kernel/socket/websocket/operator/WebSocketOperator.java index b3d553adc..4ea5c27d8 100644 --- a/kernel-d-socket/socket-sdk-websocket/src/main/java/cn/stylefeng/roses/kernel/socket/websocket/operator/WebSocketOperator.java +++ b/kernel-d-socket/socket-sdk-websocket/src/main/java/cn/stylefeng/roses/kernel/socket/websocket/operator/WebSocketOperator.java @@ -27,7 +27,7 @@ import java.util.List; public class WebSocketOperator implements SocketOperatorApi { @Override - public void sendMsgOfUserSession(ServerMessageTypeEnum msgType, String userId, Object msg) { + public void sendMsgOfUserSession(String msgType, String userId, Object msg) { // 根据用户ID获取会话 SocketSession socketSession = SessionCenter.getSessionByUserId(userId); if (ObjectUtil.isEmpty(socketSession)) { @@ -35,26 +35,26 @@ public class WebSocketOperator implements SocketOperatorApi { } // 判断用户是否监听 - if (socketSession.getMessageTypes().contains(msgType.getCode())) { + if (socketSession.getMessageTypes().contains(msgType)) { WebSocketMessagePOJO webSocketMessagePOJO = new WebSocketMessagePOJO(); webSocketMessagePOJO.setData(msg); - webSocketMessagePOJO.setType(msgType.getCode()); + webSocketMessagePOJO.setType(msgType); // 发送内容 socketSession.getSocketOperatorApi().writeAndFlush(webSocketMessagePOJO); } } @Override - public void sendMsgOfAllUserSession(ServerMessageTypeEnum msgType, Object msg) { + public void sendMsgOfAllUserSession(String msgType, Object msg) { // 获取监听该消息类型的所有会话 - List> socketSessionList = SessionCenter.getSocketSessionByMsgType(msgType.getCode()); + List> socketSessionList = SessionCenter.getSocketSessionByMsgType(msgType); if (ObjectUtil.isNotEmpty(socketSessionList)) { // 给所有会话发送消息 for (SocketSession socketSession : socketSessionList) { WebSocketMessagePOJO webSocketMessagePOJO = new WebSocketMessagePOJO(); webSocketMessagePOJO.setData(msg); - webSocketMessagePOJO.setType(msgType.getCode()); + webSocketMessagePOJO.setType(msgType); // 发送内容 socketSession.getSocketOperatorApi().writeAndFlush(webSocketMessagePOJO); } diff --git a/kernel-s-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/MessageDbServiceImpl.java b/kernel-s-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/MessageDbServiceImpl.java index 9e4f6dd09..0b86e7518 100644 --- a/kernel-s-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/MessageDbServiceImpl.java +++ b/kernel-s-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/MessageDbServiceImpl.java @@ -115,7 +115,7 @@ public class MessageDbServiceImpl implements MessageApi { // 给用户发送通知 for (Long userId : userIdSet) { - socketOperatorApi.sendMsgOfUserSession(ServerMessageTypeEnum.SYS_NOTICE_MSG_TYPE, userId.toString(), messageSendRequest); + socketOperatorApi.sendMsgOfUserSession(ServerMessageTypeEnum.SYS_NOTICE_MSG_TYPE.getCode(), userId.toString(), messageSendRequest); } sysMessageService.saveBatch(sendMsgList);