Commit 3f116f1c by Future

多人音视频占线下发

parent 7763315e
...@@ -25,7 +25,12 @@ public enum WsMultiMeetResponseSubCmdEnum { ...@@ -25,7 +25,12 @@ public enum WsMultiMeetResponseSubCmdEnum {
/** /**
* 主动离开 * 主动离开
*/ */
LEAVE(4); LEAVE(4),
/**
* 占线
*/
BUSY(5);
private final int cmdCode; private final int cmdCode;
......
...@@ -26,8 +26,4 @@ public class MultiMeetAgreeResponse extends MultiMeetDataBase implements Seriali ...@@ -26,8 +26,4 @@ public class MultiMeetAgreeResponse extends MultiMeetDataBase implements Seriali
*/ */
private String roomId; private String roomId;
/**
* 发起会议人clientId
*/
private String inviterClientId;
} }
package com.wecloud.multimeet.entity.response;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* @Author wenzhida
* @Date 2022/3/16 13:52
* @Description 占线响应
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class MultiMeetBusyResponse extends MultiMeetDataBase implements Serializable {
private static final long serialVersionUID = -5692994062040333774L;
/**
* 会话id
*/
private Long conversationId;
/**
* 房间id
*/
private String roomId;
/**
* 占线人clientId
*/
private String busyClientId;
}
...@@ -26,8 +26,4 @@ public class MultiMeetLeaveResponse extends MultiMeetDataBase implements Seriali ...@@ -26,8 +26,4 @@ public class MultiMeetLeaveResponse extends MultiMeetDataBase implements Seriali
*/ */
private String roomId; private String roomId;
/**
* 发起会议人clientId
*/
private String inviterClientId;
} }
...@@ -24,8 +24,4 @@ public class MultiMeetRejectResponse extends MultiMeetDataBase implements Serial ...@@ -24,8 +24,4 @@ public class MultiMeetRejectResponse extends MultiMeetDataBase implements Serial
*/ */
private String roomId; private String roomId;
/**
* 发起会议人clientId
*/
private String inviterClientId;
} }
package com.wecloud.multimeet.service; package com.wecloud.multimeet.service;
import com.wecloud.multimeet.entity.response.MultiMeetAgreeResponse; import com.wecloud.multimeet.entity.response.MultiMeetAgreeResponse;
import com.wecloud.multimeet.entity.response.MultiMeetBusyResponse;
import com.wecloud.multimeet.entity.response.MultiMeetInviteResponse; import com.wecloud.multimeet.entity.response.MultiMeetInviteResponse;
import com.wecloud.multimeet.entity.response.MultiMeetLeaveResponse; import com.wecloud.multimeet.entity.response.MultiMeetLeaveResponse;
import com.wecloud.multimeet.entity.response.MultiMeetRejectResponse; import com.wecloud.multimeet.entity.response.MultiMeetRejectResponse;
...@@ -40,4 +41,11 @@ public interface WsMultiMeetWrite { ...@@ -40,4 +41,11 @@ public interface WsMultiMeetWrite {
*/ */
void leave(MultiMeetLeaveResponse multiMeetLeaveResponse, Long toFkClientId); void leave(MultiMeetLeaveResponse multiMeetLeaveResponse, Long toFkClientId);
/**
* 被邀请方占线
* @param multiMeetBusyResponse
* @param toFkClientId
*/
void busy(MultiMeetBusyResponse multiMeetBusyResponse, Long toFkClientId);
} }
...@@ -22,6 +22,7 @@ import com.wecloud.im.service.ImMultiRtcRoomService; ...@@ -22,6 +22,7 @@ import com.wecloud.im.service.ImMultiRtcRoomService;
import com.wecloud.im.ws.cache.UserStateCacheManager; import com.wecloud.im.ws.cache.UserStateCacheManager;
import com.wecloud.multimeet.entity.dto.RoomMemberDto; import com.wecloud.multimeet.entity.dto.RoomMemberDto;
import com.wecloud.multimeet.entity.response.MultiMeetAgreeResponse; import com.wecloud.multimeet.entity.response.MultiMeetAgreeResponse;
import com.wecloud.multimeet.entity.response.MultiMeetBusyResponse;
import com.wecloud.multimeet.entity.response.MultiMeetInviteResponse; import com.wecloud.multimeet.entity.response.MultiMeetInviteResponse;
import com.wecloud.multimeet.entity.response.MultiMeetLeaveResponse; import com.wecloud.multimeet.entity.response.MultiMeetLeaveResponse;
import com.wecloud.multimeet.entity.response.MultiMeetRejectResponse; import com.wecloud.multimeet.entity.response.MultiMeetRejectResponse;
...@@ -102,6 +103,21 @@ public class MultiMeetServiceImpl implements MultiMeetService { ...@@ -102,6 +103,21 @@ public class MultiMeetServiceImpl implements MultiMeetService {
log.info("查无接收人信息 {}", toClientId); log.info("查无接收人信息 {}", toClientId);
continue; continue;
} }
// 占线 通知邀请方
ImMultiRtcRoomMember rtcRoomMember = imMultiRtcRoomMemberService.getOne(new QueryWrapper<ImMultiRtcRoomMember>().lambda()
.eq(ImMultiRtcRoomMember::getClientId, toClientId)
.eq(ImMultiRtcRoomMember::getRoomId, param.getRoomId()));
if (rtcRoomMember != null && MultiRtcMemberStateEnum.ANSWERED.getCode().equals(rtcRoomMember.getState())) {
MultiMeetBusyResponse multiMeetBusyResponse = new MultiMeetBusyResponse();
multiMeetBusyResponse.setConversationId(param.getConversationId());
multiMeetBusyResponse.setRoomId(param.getRoomId());
multiMeetBusyResponse.setClientId(currentClient.getClientId());
multiMeetBusyResponse.setBusyClientId(rtcRoomMember.getClientId());
multiMeetBusyResponse.setTimestamp(System.currentTimeMillis());
wsMultiMeetWrite.busy(multiMeetBusyResponse, rtcRoomMember.getFkClientId());
continue;
}
ImMultiRtcRoomMember roomMember = new ImMultiRtcRoomMember(); ImMultiRtcRoomMember roomMember = new ImMultiRtcRoomMember();
roomMember.setId(SnowflakeUtil.getId()); roomMember.setId(SnowflakeUtil.getId());
roomMember.setFkRtcRoomId(rtcRoom.getId()); roomMember.setFkRtcRoomId(rtcRoom.getId());
......
...@@ -5,6 +5,7 @@ import com.wecloud.im.ws.enums.WsResponseCmdEnum; ...@@ -5,6 +5,7 @@ import com.wecloud.im.ws.enums.WsResponseCmdEnum;
import com.wecloud.im.ws.model.WsResponse; import com.wecloud.im.ws.model.WsResponse;
import com.wecloud.im.ws.sender.ChannelSender; import com.wecloud.im.ws.sender.ChannelSender;
import com.wecloud.multimeet.entity.response.MultiMeetAgreeResponse; import com.wecloud.multimeet.entity.response.MultiMeetAgreeResponse;
import com.wecloud.multimeet.entity.response.MultiMeetBusyResponse;
import com.wecloud.multimeet.entity.response.MultiMeetInviteResponse; import com.wecloud.multimeet.entity.response.MultiMeetInviteResponse;
import com.wecloud.multimeet.entity.response.MultiMeetLeaveResponse; import com.wecloud.multimeet.entity.response.MultiMeetLeaveResponse;
import com.wecloud.multimeet.entity.response.MultiMeetRejectResponse; import com.wecloud.multimeet.entity.response.MultiMeetRejectResponse;
...@@ -87,5 +88,20 @@ public class WsMultiMeetWriteImpl implements WsMultiMeetWrite { ...@@ -87,5 +88,20 @@ public class WsMultiMeetWriteImpl implements WsMultiMeetWrite {
} }
@Override
public void busy(MultiMeetBusyResponse multiMeetBusyResponse, Long toFkClientId) {
multiMeetBusyResponse.setSubCmd(WsMultiMeetResponseSubCmdEnum.BUSY.getCmdCode());
// 向接收方推送
WsResponse<MultiMeetBusyResponse> responseModel = new WsResponse<>();
responseModel.setCmd(WsResponseCmdEnum.MULTI_MEET_MSG.getCmdCode());
ApiResult<Boolean> result = ApiResult.result(ApiCode.SUCCESS);
responseModel.setCode(result.getCode());
responseModel.setMsg(result.getMessage());
responseModel.setData(multiMeetBusyResponse);
responseModel.setReqId(null);
channelSender.sendMsg(responseModel, toFkClientId);
}
} }
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