Browse Source

fix: 系统消息多终端下bug

master
xsx 2 years ago
parent
commit
72c596864b
  1. 10
      im-server/src/main/java/com/bx/imserver/netty/processor/SystemMessageProcessor.java

10
im-server/src/main/java/com/bx/imserver/netty/processor/SystemMessageProcessor.java

@ -26,10 +26,11 @@ public class SystemMessageProcessor extends AbstractMessageProcessor<IMRecvInfo>
@Override @Override
public void process(IMRecvInfo recvInfo) { public void process(IMRecvInfo recvInfo) {
IMUserInfo receiver = recvInfo.getReceivers().get(0); log.info("接收到系统消息,接收用户数量:{},内容:{}", recvInfo.getReceivers().size(), recvInfo.getData());
log.info("接收到系统消息,接收者:{},内容:{}", receiver.getId(), recvInfo.getData()); for (IMUserInfo receiver : recvInfo.getReceivers()) {
try { try {
ChannelHandlerContext channelCtx = UserChannelCtxMap.getChannelCtx(receiver.getId(), receiver.getTerminal()); ChannelHandlerContext channelCtx =
UserChannelCtxMap.getChannelCtx(receiver.getId(), receiver.getTerminal());
if (!Objects.isNull(channelCtx)) { if (!Objects.isNull(channelCtx)) {
// 推送消息到用户 // 推送消息到用户
IMSendInfo<Object> sendInfo = new IMSendInfo<>(); IMSendInfo<Object> sendInfo = new IMSendInfo<>();
@ -41,13 +42,14 @@ public class SystemMessageProcessor extends AbstractMessageProcessor<IMRecvInfo>
} else { } else {
// 消息推送失败确认 // 消息推送失败确认
sendResult(recvInfo, IMSendCode.NOT_FIND_CHANNEL); sendResult(recvInfo, IMSendCode.NOT_FIND_CHANNEL);
log.error("未找到channel,接收者:{},内容:{}",receiver.getId(), recvInfo.getData()); log.error("未找到channel,接收者:{},内容:{}", receiver.getId(), recvInfo.getData());
} }
} catch (Exception e) { } catch (Exception e) {
// 消息推送失败确认 // 消息推送失败确认
sendResult(recvInfo, IMSendCode.UNKONW_ERROR); sendResult(recvInfo, IMSendCode.UNKONW_ERROR);
log.error("发送异常,,接收者:{},内容:{}", receiver.getId(), recvInfo.getData(), e); log.error("发送异常,,接收者:{},内容:{}", receiver.getId(), recvInfo.getData(), e);
} }
}
} }

Loading…
Cancel
Save