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); } }