Commit 4a50897a by Future

多人音视频-异常断线场景处理

parent 336c530b
......@@ -124,6 +124,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
if (rtcRoomMember != null) {
// 该房间已邀请过一次,再次发起邀请
rtcRoomMember.setState(MultiRtcMemberStateEnum.CALLING.getCode());
rtcRoomMember.setCallTime(new Date());
imMultiRtcRoomMemberService.updateById(rtcRoomMember);
continue;
}
......@@ -134,6 +135,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
roomMember.setFkClientId(toClient.getId());
roomMember.setClientId(toClient.getClientId());
roomMember.setState(MultiRtcMemberStateEnum.CALLING.getCode());
roomMember.setCallTime(new Date());
roomMember.setCreateTime(new Date());
roomMember.setUpdateTime(new Date());
roomMembersToSave.add(roomMember);
......@@ -151,6 +153,8 @@ public class MultiMeetServiceImpl implements MultiMeetService {
roomMember.setFkClientId(currentClient.getId());
roomMember.setClientId(currentClient.getClientId());
roomMember.setState(MultiRtcMemberStateEnum.ANSWERED.getCode());
roomMember.setCallTime(new Date());
roomMember.setHeartbeatTime(new Date());
roomMember.setCreateTime(new Date());
roomMember.setUpdateTime(new Date());
roomMembersToSave.add(roomMember);
......@@ -298,11 +302,11 @@ public class MultiMeetServiceImpl implements MultiMeetService {
@Override
public void disconnect() {
// 20 秒之前的时间
Date tenSecondsBefore = DateUtils.addSeconds(new Date(), -20);
Date beforeTime = DateUtils.addSeconds(new Date(), -20);
// 获取最后心跳时间为20秒之前 并且状态为接听中的会议成员
List<ImMultiRtcRoomMember> rtcRoomMemberList = imMultiRtcRoomMemberService.list(
new QueryWrapper<ImMultiRtcRoomMember>().lambda()
.lt(ImMultiRtcRoomMember::getCallTime, tenSecondsBefore)
.lt(ImMultiRtcRoomMember::getCallTime, beforeTime)
.eq(ImMultiRtcRoomMember::getState, MultiRtcMemberStateEnum.ANSWERED.getCode())
);
if (CollectionUtils.isEmpty(rtcRoomMemberList)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment