From 72c596864b6cbf9d231f7e164ddc42e8a150948d Mon Sep 17 00:00:00 2001 From: xsx <825657193@qq.com> Date: Sun, 8 Sep 2024 23:00:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=B3=BB=E7=BB=9F=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=A4=9A=E7=BB=88=E7=AB=AF=E4=B8=8Bbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../processor/SystemMessageProcessor.java | 40 ++++++++++--------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/im-server/src/main/java/com/bx/imserver/netty/processor/SystemMessageProcessor.java b/im-server/src/main/java/com/bx/imserver/netty/processor/SystemMessageProcessor.java index 2020252..01d93c2 100644 --- a/im-server/src/main/java/com/bx/imserver/netty/processor/SystemMessageProcessor.java +++ b/im-server/src/main/java/com/bx/imserver/netty/processor/SystemMessageProcessor.java @@ -26,27 +26,29 @@ public class SystemMessageProcessor extends AbstractMessageProcessor @Override public void process(IMRecvInfo recvInfo) { - IMUserInfo receiver = recvInfo.getReceivers().get(0); - log.info("接收到系统消息,接收者:{},内容:{}", receiver.getId(), recvInfo.getData()); - try { - ChannelHandlerContext channelCtx = UserChannelCtxMap.getChannelCtx(receiver.getId(), receiver.getTerminal()); - if (!Objects.isNull(channelCtx)) { - // 推送消息到用户 - IMSendInfo sendInfo = new IMSendInfo<>(); - sendInfo.setCmd(IMCmdType.SYSTEM_MESSAGE.code()); - sendInfo.setData(recvInfo.getData()); - channelCtx.channel().writeAndFlush(sendInfo); - // 消息发送成功确认 - sendResult(recvInfo, IMSendCode.SUCCESS); - } else { + log.info("接收到系统消息,接收用户数量:{},内容:{}", recvInfo.getReceivers().size(), recvInfo.getData()); + for (IMUserInfo receiver : recvInfo.getReceivers()) { + try { + ChannelHandlerContext channelCtx = + UserChannelCtxMap.getChannelCtx(receiver.getId(), receiver.getTerminal()); + if (!Objects.isNull(channelCtx)) { + // 推送消息到用户 + IMSendInfo sendInfo = new IMSendInfo<>(); + sendInfo.setCmd(IMCmdType.SYSTEM_MESSAGE.code()); + sendInfo.setData(recvInfo.getData()); + channelCtx.channel().writeAndFlush(sendInfo); + // 消息发送成功确认 + sendResult(recvInfo, IMSendCode.SUCCESS); + } else { + // 消息推送失败确认 + sendResult(recvInfo, IMSendCode.NOT_FIND_CHANNEL); + log.error("未找到channel,接收者:{},内容:{}", receiver.getId(), recvInfo.getData()); + } + } catch (Exception e) { // 消息推送失败确认 - sendResult(recvInfo, IMSendCode.NOT_FIND_CHANNEL); - log.error("未找到channel,接收者:{},内容:{}",receiver.getId(), recvInfo.getData()); + sendResult(recvInfo, IMSendCode.UNKONW_ERROR); + log.error("发送异常,,接收者:{},内容:{}", receiver.getId(), recvInfo.getData(), e); } - } catch (Exception e) { - // 消息推送失败确认 - sendResult(recvInfo, IMSendCode.UNKONW_ERROR); - log.error("发送异常,,接收者:{},内容:{}", receiver.getId(), recvInfo.getData(), e); } }