Browse Source

调试手机端录音失败的原因

master
xie.bx 3 years ago
parent
commit
1e9bc06b7b
  1. 6
      im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java
  2. 4
      im-server/src/main/java/com/bx/imserver/netty/processor/GroupMessageProcessor.java

6
im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java

@ -74,6 +74,8 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
msg.setSendId(userId);
msg.setSendTime(new Date());
this.save(msg);
// 不用发给自己
userIds = userIds.stream().filter(id->userId!=id).collect(Collectors.toList());
// 群发
GroupMessageInfo msgInfo = BeanUtils.copyProperties(msg, GroupMessageInfo.class);
imClient.sendGroupMessage(userIds,msgInfo);
@ -112,6 +114,8 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
this.updateById(msg);
// 群发
List<Long> userIds = groupMemberService.findUserIdsByGroupId(msg.getGroupId());
// 不用发给自己
userIds = userIds.stream().filter(uid->userId.equals(uid)).collect(Collectors.toList());
GroupMessageInfo msgInfo = BeanUtils.copyProperties(msg, GroupMessageInfo.class);
msgInfo.setType(MessageType.TIP.code());
String content = String.format("'%s'撤回了一条消息",member.getAliasName());
@ -140,6 +144,7 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
QueryWrapper<GroupMessage> wrapper = new QueryWrapper();
wrapper.lambda().eq(GroupMessage::getGroupId,member.getGroupId())
.gt(GroupMessage::getSendTime,member.getCreatedTime())
.ne(GroupMessage::getSendId, userId)
.ne(GroupMessage::getStatus, MessageStatus.RECALL.code());
if(maxReadedId!=null){
wrapper.lambda().gt(GroupMessage::getId,maxReadedId);
@ -198,4 +203,5 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
return messageInfos;
}
}

4
im-server/src/main/java/com/bx/imserver/netty/processor/GroupMessageProcessor.java

@ -34,8 +34,6 @@ public class GroupMessageProcessor extends MessageProcessor<IMRecvInfo<GroupMes
try {
ChannelHandlerContext channelCtx = UserChannelCtxMap.getChannelCtx(recvId);
if(channelCtx != null){
// 自己发的消息不用推送
if(recvId != messageInfo.getSendId()){
// 推送消息到用户
IMSendInfo sendInfo = new IMSendInfo();
sendInfo.setCmd(IMCmdType.GROUP_MESSAGE.code());
@ -48,7 +46,7 @@ public class GroupMessageProcessor extends MessageProcessor<IMRecvInfo<GroupMes
sendResult.setStatus(IMSendStatus.SUCCESS);
sendResult.setMessageInfo(messageInfo);
redisTemplate.opsForList().rightPush(key,sendResult);
}
}else {
// 消息发送失败确认
String key = RedisKey.IM_RESULT_GROUP_QUEUE;

Loading…
Cancel
Save