From 5bfad6c3d56ee17e24b81212003629827e35d785 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Mon, 30 Sep 2024 10:03:38 +0800 Subject: [PATCH] optimize-client-msg --- .../cim/client/sdk/io/CIMClientHandle.java | 1 - .../client/sdk/io/backoff/RandomBackoff.java | 2 -- .../cim/client/config/BeanConfig.java | 2 +- .../client/service/impl/EchoServiceImpl.java | 6 +++++- .../service/impl/MsgCallBackListener.java | 8 +++++-- .../cim/route/controller/RouteController.java | 21 +++++++++---------- 6 files changed, 22 insertions(+), 18 deletions(-) diff --git a/cim-client-sdk/src/main/java/com/crossoverjie/cim/client/sdk/io/CIMClientHandle.java b/cim-client-sdk/src/main/java/com/crossoverjie/cim/client/sdk/io/CIMClientHandle.java index 4b9709f9..fefc458a 100644 --- a/cim-client-sdk/src/main/java/com/crossoverjie/cim/client/sdk/io/CIMClientHandle.java +++ b/cim-client-sdk/src/main/java/com/crossoverjie/cim/client/sdk/io/CIMClientHandle.java @@ -67,7 +67,6 @@ protected void channelRead0(ChannelHandlerContext ctx, CIMResponseProto.CIMResPr if (msg.getType() != Constants.CommandType.PING) { // callback - ClientImpl.getClient().getConf().getEvent().info(msg.getResMsg()); ClientImpl.getClient().getConf().getCallbackThreadPool().execute(() -> { ClientImpl.getClient().getConf().getMessageListener().received(ClientImpl.getClient(), msg.getResMsg()); }); diff --git a/cim-client-sdk/src/main/java/com/crossoverjie/cim/client/sdk/io/backoff/RandomBackoff.java b/cim-client-sdk/src/main/java/com/crossoverjie/cim/client/sdk/io/backoff/RandomBackoff.java index de958b4e..7de4ca5f 100644 --- a/cim-client-sdk/src/main/java/com/crossoverjie/cim/client/sdk/io/backoff/RandomBackoff.java +++ b/cim-client-sdk/src/main/java/com/crossoverjie/cim/client/sdk/io/backoff/RandomBackoff.java @@ -1,7 +1,5 @@ package com.crossoverjie.cim.client.sdk.io.backoff; -import java.util.concurrent.TimeUnit; - /** * @author:qjj * @create: 2024-09-21 12:22 diff --git a/cim-client/src/main/java/com/crossoverjie/cim/client/config/BeanConfig.java b/cim-client/src/main/java/com/crossoverjie/cim/client/config/BeanConfig.java index 170eca64..30ea454f 100644 --- a/cim-client/src/main/java/com/crossoverjie/cim/client/config/BeanConfig.java +++ b/cim-client/src/main/java/com/crossoverjie/cim/client/config/BeanConfig.java @@ -60,7 +60,7 @@ public Client buildClient(@Qualifier("callBackThreadPool") ThreadPoolExecutor ca .event(event) .reconnectCheck(client -> !shutDownSign.checkStatus()) .okHttpClient(okHttpClient) - .messageListener(new MsgCallBackListener(msgLogger)) + .messageListener(new MsgCallBackListener(msgLogger, event)) .callbackThreadPool(callbackThreadPool) .backoffStrategy(new RandomBackoff()) .build(); diff --git a/cim-client/src/main/java/com/crossoverjie/cim/client/service/impl/EchoServiceImpl.java b/cim-client/src/main/java/com/crossoverjie/cim/client/service/impl/EchoServiceImpl.java index 841a6543..2dce9ebb 100644 --- a/cim-client/src/main/java/com/crossoverjie/cim/client/service/impl/EchoServiceImpl.java +++ b/cim-client/src/main/java/com/crossoverjie/cim/client/service/impl/EchoServiceImpl.java @@ -3,6 +3,7 @@ import com.crossoverjie.cim.client.config.AppConfiguration; import com.crossoverjie.cim.client.sdk.Client; import com.crossoverjie.cim.client.sdk.Event; +import com.crossoverjie.cim.client.service.MsgLogger; import com.vdurmont.emoji.EmojiParser; import jakarta.annotation.Resource; import java.time.LocalDate; @@ -24,9 +25,12 @@ public class EchoServiceImpl implements Event { @Resource private AppConfiguration appConfiguration; + @Resource + private MsgLogger msgLogger; + @Override public void debug(String msg, Object... replace) { - info(String.format("Debug[%s]", msg), replace); + msgLogger.log(String.format("Debug[%s]", msg)); } @Override diff --git a/cim-client/src/main/java/com/crossoverjie/cim/client/service/impl/MsgCallBackListener.java b/cim-client/src/main/java/com/crossoverjie/cim/client/service/impl/MsgCallBackListener.java index 3d395b08..b31df4c0 100644 --- a/cim-client/src/main/java/com/crossoverjie/cim/client/service/impl/MsgCallBackListener.java +++ b/cim-client/src/main/java/com/crossoverjie/cim/client/service/impl/MsgCallBackListener.java @@ -1,6 +1,7 @@ package com.crossoverjie.cim.client.service.impl; import com.crossoverjie.cim.client.sdk.Client; +import com.crossoverjie.cim.client.sdk.Event; import com.crossoverjie.cim.client.sdk.io.MessageListener; import com.crossoverjie.cim.client.service.MsgLogger; @@ -15,14 +16,17 @@ public class MsgCallBackListener implements MessageListener { private final MsgLogger msgLogger; + private final Event event; - public MsgCallBackListener(MsgLogger msgLogger) { + public MsgCallBackListener(MsgLogger msgLogger, Event event) { this.msgLogger = msgLogger; + this.event = event; } @Override public void received(Client client, String msg) { - msgLogger.log(msg); + this.msgLogger.log(msg); + this.event.info(msg); } } diff --git a/cim-forward-route/src/main/java/com/crossoverjie/cim/route/controller/RouteController.java b/cim-forward-route/src/main/java/com/crossoverjie/cim/route/controller/RouteController.java index 3b183518..6ff84924 100644 --- a/cim-forward-route/src/main/java/com/crossoverjie/cim/route/controller/RouteController.java +++ b/cim-forward-route/src/main/java/com/crossoverjie/cim/route/controller/RouteController.java @@ -48,13 +48,13 @@ public class RouteController implements RouteApi { @Resource private MetaStore metaStore; - @Autowired + @Resource private AccountService accountService; - @Autowired + @Resource private UserInfoCacheService userInfoCacheService; - @Autowired + @Resource private CommonBizService commonBizService; @Resource @@ -69,19 +69,18 @@ public BaseResponse groupRoute(@RequestBody ChatReqVO groupReqVO) { log.info("msg=[{}]", groupReqVO.toString()); - //获取所有的推送列表 - Map serverResVOMap = accountService.loadRouteRelated(); - for (Map.Entry cimServerResVOEntry : serverResVOMap.entrySet()) { - Long userId = cimServerResVOEntry.getKey(); - CIMServerResVO cimServerResVO = cimServerResVOEntry.getValue(); + Map serverResVoMap = accountService.loadRouteRelated(); + for (Map.Entry cimServerResVoEntry : serverResVoMap.entrySet()) { + Long userId = cimServerResVoEntry.getKey(); + CIMServerResVO cimServerResVO = cimServerResVoEntry.getValue(); if (userId.equals(groupReqVO.getUserId())) { - //过滤掉自己 + // Skip the sender Optional cimUserInfo = userInfoCacheService.loadUserInfoByUserId(groupReqVO.getUserId()); - cimUserInfo.ifPresent(userInfo -> log.warn("过滤掉了发送者 userId={}", userInfo.toString())); + cimUserInfo.ifPresent(userInfo -> log.warn("skip send user userId={}", userInfo)); continue; } - //推送消息 + // Push message ChatReqVO chatVO = new ChatReqVO(userId, groupReqVO.getMsg()); accountService.pushMsg(cimServerResVO, groupReqVO.getUserId(), chatVO);