From ad2c1fa35b7ffad5d389dc560985aa99fe4003ae Mon Sep 17 00:00:00 2001 From: xsx <825657193@qq.com> Date: Mon, 10 Jun 2024 22:09:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A4=9A=E4=BA=BA=E8=A7=86=E9=A2=91-?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WebrtcGroupServiceImpl.java | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/im-platform/src/main/java/com/bx/implatform/service/impl/WebrtcGroupServiceImpl.java b/im-platform/src/main/java/com/bx/implatform/service/impl/WebrtcGroupServiceImpl.java index 3a30277..41e92f5 100644 --- a/im-platform/src/main/java/com/bx/implatform/service/impl/WebrtcGroupServiceImpl.java +++ b/im-platform/src/main/java/com/bx/implatform/service/impl/WebrtcGroupServiceImpl.java @@ -111,7 +111,7 @@ public class WebrtcGroupServiceImpl implements IWebrtcGroupService { } // 向被邀请的用户广播消息,发起呼叫 List recvIds = getRecvIds(userInfos); - sendRtcMessage1(MessageType.RTC_GROUP_SETUP, dto.getGroupId(), recvIds, JSON.toJSONString(userInfos)); + sendRtcMessage1(MessageType.RTC_GROUP_SETUP, dto.getGroupId(), recvIds, JSON.toJSONString(userInfos),false); // 发送文字提示信息 WebrtcUserInfo mineInfo = findUserInfo(webrtcSession,userSession.getUserId()); String content = mineInfo.getNickName() + " 发起了语音通话"; @@ -137,7 +137,7 @@ public class WebrtcGroupServiceImpl implements IWebrtcGroupService { saveWebrtcSession(groupId, webrtcSession); // 广播信令 List recvIds = getRecvIds(webrtcSession.getUserInfos()); - sendRtcMessage1(MessageType.RTC_GROUP_ACCEPT, groupId, recvIds, ""); + sendRtcMessage1(MessageType.RTC_GROUP_ACCEPT, groupId, recvIds, "",true); log.info("加入群通话,userId:{},groupId:{}", userSession.getUserId(), groupId); } @@ -164,7 +164,7 @@ public class WebrtcGroupServiceImpl implements IWebrtcGroupService { userStateUtils.setFree(userSession.getUserId()); // 广播消息给的所有用户 List recvIds = getRecvIds(userInfos); - sendRtcMessage1(MessageType.RTC_GROUP_REJECT, groupId, recvIds, ""); + sendRtcMessage1(MessageType.RTC_GROUP_REJECT, groupId, recvIds, "",true); log.info("拒绝群通话,userId:{},groupId:{}", userSession.getUserId(), groupId); } @@ -193,7 +193,7 @@ public class WebrtcGroupServiceImpl implements IWebrtcGroupService { vo.setUserIds(Arrays.asList(userSession.getUserId())); vo.setReason(dto.getReason()); List recvIds = getRecvIds(userInfos); - sendRtcMessage1(MessageType.RTC_GROUP_FAILED, dto.getGroupId(), recvIds, JSON.toJSONString(vo)); + sendRtcMessage1(MessageType.RTC_GROUP_FAILED, dto.getGroupId(), recvIds, JSON.toJSONString(vo),false); log.info("群通话失败,userId:{},groupId:{},原因:{}", userSession.getUserId(), dto.getReason()); } @@ -228,7 +228,7 @@ public class WebrtcGroupServiceImpl implements IWebrtcGroupService { userStateUtils.setBusy(userSession.getUserId()); // 广播信令 List recvIds = getRecvIds(webrtcSession.getUserInfos()); - sendRtcMessage1(MessageType.RTC_GROUP_JOIN, groupId, recvIds, JSON.toJSONString(userInfo)); + sendRtcMessage1(MessageType.RTC_GROUP_JOIN, groupId, recvIds, JSON.toJSONString(userInfo),false); log.info("加入群通话,userId:{},groupId:{}", userSession.getUserId(), groupId); } @@ -243,8 +243,6 @@ public class WebrtcGroupServiceImpl implements IWebrtcGroupService { if (!groupMemberService.isInGroup(dto.getGroupId(), getRecvIds(dto.getUserInfos()))) { throw new GlobalException("部分用户不在群聊中"); } - // 保存开启通话提示消息 - // 过滤掉已经在通话中的用户 List userInfos = webrtcSession.getUserInfos(); // 原用户id @@ -290,9 +288,9 @@ public class WebrtcGroupServiceImpl implements IWebrtcGroupService { } // 向被邀请的发起呼叫 List newUserIds = getRecvIds(newUserInfos); - sendRtcMessage1(MessageType.RTC_GROUP_SETUP, dto.getGroupId(), newUserIds, JSON.toJSONString(userInfos)); + sendRtcMessage1(MessageType.RTC_GROUP_SETUP, dto.getGroupId(), newUserIds, JSON.toJSONString(userInfos),false); // 向已在通话中的用户同步新邀请的用户信息 - sendRtcMessage1(MessageType.RTC_GROUP_INVITE, dto.getGroupId(), userIds, JSON.toJSONString(newUserInfos)); + sendRtcMessage1(MessageType.RTC_GROUP_INVITE, dto.getGroupId(), userIds, JSON.toJSONString(newUserInfos),false); log.info("邀请加入群通话,userId:{},groupId:{},邀请用户:{}", userSession.getUserId(), dto.getGroupId(), newUserIds); } @@ -312,7 +310,7 @@ public class WebrtcGroupServiceImpl implements IWebrtcGroupService { webrtcSession.getUserInfos().forEach(user -> userStateUtils.setFree(user.getId())); // 广播消息给的所有用户 List recvIds = getRecvIds(webrtcSession.getUserInfos()); - sendRtcMessage1(MessageType.RTC_GROUP_CANCEL, groupId, recvIds, ""); + sendRtcMessage1(MessageType.RTC_GROUP_CANCEL, groupId, recvIds, "",false); // 发送文字提示信息 sendTipMessage(groupId,"通话结束"); log.info("发起人取消群通话,userId:{},groupId:{}", userSession.getUserId(), groupId); @@ -340,7 +338,7 @@ public class WebrtcGroupServiceImpl implements IWebrtcGroupService { webrtcSession.getUserInfos().forEach(user -> userStateUtils.setFree(user.getId())); // 广播给还在呼叫中的用户,取消通话 List recvIds = getRecvIds(webrtcSession.getUserInfos()); - sendRtcMessage1(MessageType.RTC_GROUP_CANCEL, groupId, recvIds, ""); + sendRtcMessage1(MessageType.RTC_GROUP_CANCEL, groupId, recvIds, "",false); // 发送文字提示信息 sendTipMessage(groupId,"通话结束"); log.info("群通话结束,groupId:{}", groupId); @@ -353,7 +351,7 @@ public class WebrtcGroupServiceImpl implements IWebrtcGroupService { userStateUtils.setFree(userSession.getUserId()); // 广播信令 List recvIds = getRecvIds(userInfos); - sendRtcMessage1(MessageType.RTC_GROUP_QUIT, groupId, recvIds, ""); + sendRtcMessage1(MessageType.RTC_GROUP_QUIT, groupId, recvIds, "",false); log.info("用户退出群通话,userId:{},groupId:{}", userSession.getUserId(), groupId); } } @@ -422,7 +420,7 @@ public class WebrtcGroupServiceImpl implements IWebrtcGroupService { saveWebrtcSession(dto.getGroupId(), webrtcSession); // 广播信令 List recvIds = getRecvIds(webrtcSession.getUserInfos()); - sendRtcMessage1(MessageType.RTC_GROUP_DEVICE, dto.getGroupId(), recvIds, JSON.toJSONString(dto)); + sendRtcMessage1(MessageType.RTC_GROUP_DEVICE, dto.getGroupId(), recvIds, JSON.toJSONString(dto),false); log.info("设备操作,userId:{},groupId:{},摄像头:{}", userSession.getUserId(), dto.getGroupId(), dto.getIsCamera()); } @@ -515,7 +513,7 @@ public class WebrtcGroupServiceImpl implements IWebrtcGroupService { return webrtcSession.getUserInfos().stream().anyMatch(user -> user.getId().equals(userId)); } - private void sendRtcMessage1(MessageType messageType, Long groupId, List recvIds, String content) { + private void sendRtcMessage1(MessageType messageType, Long groupId, List recvIds, String content,Boolean sendSelf) { UserSession userSession = SessionContext.getSession(); GroupMessageVO messageInfo = new GroupMessageVO(); messageInfo.setType(messageType.code()); @@ -525,7 +523,7 @@ public class WebrtcGroupServiceImpl implements IWebrtcGroupService { IMGroupMessage sendMessage = new IMGroupMessage<>(); sendMessage.setSender(new IMUserInfo(userSession.getUserId(), userSession.getTerminal())); sendMessage.setRecvIds(recvIds); - sendMessage.setSendToSelf(false); + sendMessage.setSendToSelf(sendSelf); sendMessage.setSendResult(false); sendMessage.setData(messageInfo); imClient.sendGroupMessage(sendMessage);