init
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package com.ruoyi.cai.ws.processon;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.ruoyi.cai.agora.Agora;
|
||||
import com.ruoyi.cai.executor.ExecutorConstant;
|
||||
import com.ruoyi.cai.service.CaiAnchorService;
|
||||
import com.ruoyi.cai.service.CaiUserService;
|
||||
import com.ruoyi.cai.ws.bean.FdCtxData;
|
||||
@@ -20,6 +22,7 @@ import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.socket.WebSocketSession;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Component
|
||||
@@ -40,6 +43,8 @@ public class OpenLogic implements IOpenLogic {
|
||||
private CaiUserService userService;
|
||||
@Autowired
|
||||
private CaiAnchorService anchorService;
|
||||
@Autowired
|
||||
private Agora agora;
|
||||
|
||||
@Override
|
||||
public void processOn(WebSocketSession session) {
|
||||
@@ -104,25 +109,20 @@ public class OpenLogic implements IOpenLogic {
|
||||
}
|
||||
// 已经接通
|
||||
if(room.isOnline()){
|
||||
// 如果视频也掉线了,则重连的时候发送消息提示
|
||||
// sgo(function() use ($rs){
|
||||
// $users = Agora::getChannelUsers($rs->room->id);
|
||||
// if (in_array($rs->caller->id, $users)) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// $rs->sendToCurrent(WsMsgGen::startVideo($rs->room->id, $rs->callTime()))
|
||||
// ->sendToCurrent(WsMsgGen::sysNotice('重连成功,房间已通话 '.gmdate('H:i:s', $rs->callTime())))
|
||||
// ->sendToReceiver(WsMsgGen::sysNotice('对方已重连成功'));
|
||||
// });
|
||||
|
||||
Long callTime = roomService.getCallTime(room);
|
||||
RoomWebSocketUtil.sendSendMessage(sessionKey,WsRMsgGen.startVideo(room.getRoomId(), callTime));
|
||||
RoomWebSocketUtil.sendSendMessage(sessionKey,WsRMsgGen.sysNotice("重连成功,房间已通话(转换成时分秒) "));
|
||||
String sessionKeyReceiver = roomCtxCache.getSessionKeyReceiverByRoomId(room.getRoomId());
|
||||
if(StringUtils.isNotEmpty(sessionKeyReceiver)){
|
||||
RoomWebSocketUtil.sendSendMessage(sessionKey,WsRMsgGen.sysNotice("对方已重连成功"));
|
||||
}
|
||||
ExecutorConstant.ROOM_EXECUTOR.execute(() -> {
|
||||
// 如果视频也掉线了,则重连的时候发送消息提示
|
||||
List<String> channelUsers = agora.getChannelUsers(room.getRoomId());
|
||||
if(channelUsers.contains(userId+"")){
|
||||
return;
|
||||
}
|
||||
Long callTime = roomService.getCallTime(room);
|
||||
RoomWebSocketUtil.sendSendMessage(sessionKey,WsRMsgGen.startVideo(room.getRoomId(), callTime));
|
||||
RoomWebSocketUtil.sendSendMessage(sessionKey,WsRMsgGen.sysNotice("重连成功,房间已通话(转换成时分秒) "));
|
||||
String sessionKeyReceiver = roomCtxCache.getSessionKeyReceiverByRoomId(room.getRoomId());
|
||||
if(StringUtils.isNotEmpty(sessionKeyReceiver)){
|
||||
RoomWebSocketUtil.sendSendMessage(sessionKey,WsRMsgGen.sysNotice("对方已重连成功"));
|
||||
}
|
||||
});
|
||||
}
|
||||
if(RoomStatusEnums.STATUS_CREATE.getCode().equals(status) ||
|
||||
RoomStatusEnums.STATUS_CALLER_CONNECT.getCode().equals(status) ||
|
||||
@@ -131,7 +131,7 @@ public class OpenLogic implements IOpenLogic {
|
||||
RoomWebSocketUtil.sendSendMessage(sessionKey, WsRMsgGen.response(room.getRoomId()));
|
||||
}
|
||||
if(isFirst){
|
||||
// 给对方发送呼叫页面
|
||||
// 给对方发送呼叫页面 TODO
|
||||
}
|
||||
}
|
||||
public void receiverConnection(String sessionKey,Room room,Long userId){
|
||||
|
||||
@@ -1,16 +1,23 @@
|
||||
package com.ruoyi.cai.ws.util;
|
||||
|
||||
import com.esotericsoftware.minlog.Log;
|
||||
import com.ruoyi.cai.ws.constant.HangUpEnums;
|
||||
import com.ruoyi.websocket.dto.WsRMsgGen;
|
||||
import com.ruoyi.websocket.util.RoomWebSocketUtil;
|
||||
import com.ruoyi.websocket.util.WebSocketUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class WsExceptionUtil {
|
||||
public static void throwException(String sessionKey, String message, HangUpEnums hangUpType, String roomId){
|
||||
if(hangUpType == null){
|
||||
hangUpType = HangUpEnums.OTHER;
|
||||
}
|
||||
RoomWebSocketUtil.sendSendMessage(sessionKey, WsRMsgGen.hangup(message,roomId,hangUpType.getCode()));
|
||||
boolean close = WebSocketUtils.close(sessionKey);
|
||||
if(!close){
|
||||
log.warn("ws连接时发现异常:{},sessionKey {} roomid {}", message, sessionKey, roomId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public String handUp(String sessionKey,String message,String roomId,HangUpEnums hang){
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user