代码调整

This commit is contained in:
2025-08-11 16:31:26 +08:00
parent 09d2911c4c
commit fe5040c7af
4 changed files with 94 additions and 71 deletions

View File

@@ -857,7 +857,7 @@ public class SocketDevResponseService {
webSocketVO.setData(JSON.toJSONString(map));
webSocketVO.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
webSocketVO.setOperateCode(SourceOperateCodeEnum.VERIFY_MAPPING$01.getValue());
webSocketVO.setCode(SourceResponseCodeEnum.SUCCESS.getCode());
webSocketVO.setCode(SourceResponseCodeEnum.FAIL.getCode());
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
CnSocketUtil.quitSend(param);
break;

View File

@@ -236,8 +236,9 @@ public class PreDetectionServiceImpl implements PreDetectionService {
xuMsg.setData(JSON.toJSONString(sourceIssues));
xuMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + "&&" + sourceIssues.getType());
SocketManager.sendMsg(param.getUserPageId() + DetectionCommunicateConstant.SOURCE, JSON.toJSONString(xuMsg));
// Resume_Success
} else {
//TODO 是否最终检测完成需要推送给用户
//TODO 是否最终检测完成需要推送给用户 检测完成
PqScriptCheckDataParam checkDataParam = new PqScriptCheckDataParam();
checkDataParam.setScriptId(param.getScriptId());
checkDataParam.setIsValueTypeName(false);

View File

@@ -51,19 +51,29 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
public class NettyDevClientHandler extends SimpleChannelInboundHandler<String> {
/** 闪变检测超时时间20分钟1300秒 */
/**
* 闪变检测超时时间20分钟1300秒
*/
private static final long FLICKER_TIMEOUT = 1300L;
/** 统计数据检测超时时间3分钟180秒 */
/**
* 统计数据检测超时时间3分钟180秒
*/
private static final long STATISTICS_TIMEOUT = 180L;
/** 实时数据检测超时时间1分钟60秒 */
/**
* 实时数据检测超时时间1分钟60秒
*/
private static final long REALTIME_TIMEOUT = 60L;
/** 暂停操作超时时间10分钟600秒 */
/**
* 暂停操作超时时间10分钟600秒
*/
private static final long STOP_TIMEOUT = 600L;
/** 超时时默认结果标志3表示超时失败 */
/**
* 超时时默认结果标志3表示超时失败
*/
private static final int DEFAULT_RESULT_FLAG = 3;
private final PreDetectionParam param;
@@ -117,10 +127,9 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler<String> {
*
* @param ctx 通道上下文
* @param msg 接收到的消息
* @throws InterruptedException 线程中断异常
*/
@Override
protected void channelRead0(ChannelHandlerContext ctx, String msg) throws InterruptedException {
protected void channelRead0(ChannelHandlerContext ctx, String msg) {
log.info("devhandler接收server端数据: {}", msg);
try {
socketResponseService.deal(param, msg);
@@ -131,7 +140,6 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler<String> {
}
/**
* 用户事件回调方法,主要用于处理心跳超时
* <p>当触发READER_IDLE事件时根据当前状态进行超时处理</p>
@@ -171,7 +179,7 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler<String> {
* 异常捕获处理
* <p>捕获并处理各种类型的异常,执行清理工作</p>
*
* @param ctx 通道上下文
* @param ctx 通道上下文
* @param cause 异常原因
*/
@Override
@@ -208,8 +216,6 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler<String> {
}
/**
* 处理读取超时事件
* <p>检查源列表,更新超时计数器,判断是否超时并处理</p>
@@ -241,7 +247,7 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler<String> {
log.warn("当前进入暂停操作超时函数,停止时间: {}", FormalTestManager.stopTime);
if (FormalTestManager.stopTime > STOP_TIMEOUT) {
CnSocketUtil.quitSend(param);
WebServiceManager.sendDetectionErrorMessage(param.getUserPageId(), SourceOperateCodeEnum.STOP_TIMEOUT);
WebServiceManager.sendDetectionErrorMessage(param.getUserPageId(),SourceOperateCodeEnum.FORMAL_REAL.getValue(), SourceOperateCodeEnum.STOP_TIMEOUT);
}
}

View File

@@ -42,12 +42,11 @@ import java.util.concurrent.ConcurrentHashMap;
* </ul>
*
* @author wr
* @date 2024/12/11 13:04
* @version 1.0
* @since 检测系统 v2.3.12
*
* @date 2024/12/11 13:04
* @see com.njcn.gather.detection.util.socket.websocket.WebSocketHandler WebSocket处理器
* @see com.njcn.gather.detection.pojo.vo.WebSocketVO WebSocket消息对象
* @since 检测系统 v2.3.12
*/
@Slf4j
public class WebServiceManager {
@@ -68,7 +67,7 @@ public class WebServiceManager {
/**
* 添加用户WebSocket会话
*
* @param userId 用户ID不能为null
* @param userId 用户ID不能为null
* @param channel WebSocket连接通道不能为null
*/
public static void addUser(String userId, Channel channel) {
@@ -112,7 +111,7 @@ public class WebServiceManager {
* 发送纯文本消息给指定用户
*
* @param userId 目标用户ID
* @param msg 要发送的文本消息
* @param msg 要发送的文本消息
*/
public static void sendMsg(String userId, String msg) {
Channel channel = userSessions.get(userId);
@@ -128,7 +127,7 @@ public class WebServiceManager {
* 发送结构化消息给指定用户
* 消息会被序列化为JSON格式后发送
*
* @param userId 目标用户ID
* @param userId 目标用户ID
* @param webSocketVO 要发送的结构化消息对象
*/
public static void sendMessage(String userId, WebSocketVO<Object> webSocketVO) {
@@ -145,7 +144,7 @@ public class WebServiceManager {
* 存储检测参数基于用户ID
* 支持多用户并发检测,每个用户的检测参数独立存储
*
* @param userId 用户ID登录名
* @param userId 用户ID登录名
* @param preDetectionParam 检测参数对象
* @throws IllegalArgumentException 当userId或检测参数为空时抛出
*/
@@ -250,11 +249,11 @@ public class WebServiceManager {
* 发送检测相关消息给指定用户
* <p>用于推送检测状态、进度、结果等结构化消息</p>
*
* @param userId 目标用户ID
* @param requestId 请求ID用于标识消息类型和流程
* @param userId 目标用户ID
* @param requestId 请求ID用于标识消息类型和流程
* @param operateCode 操作代码,标识具体的操作类型
* @param data 数据载荷,可以是任意类型的数据
* @param desc 描述信息
* @param data 数据载荷,可以是任意类型的数据
* @param desc 描述信息
* @since v2.3.12 重构版本
*/
public static void sendDetectionMessage(String userId, String requestId, String operateCode, Object data, String desc) {
@@ -285,7 +284,7 @@ public class WebServiceManager {
* 发送检测错误消息给指定用户
* <p>用于推送特定类型的检测错误信息</p>
*
* @param userId 目标用户ID
* @param userId 目标用户ID
* @param errorType 错误类型枚举
* @since v2.3.12 重构版本
*/
@@ -296,5 +295,22 @@ public class WebServiceManager {
webSocketVO.setOperateCode(errorType.getValue());
sendMessage(userId, webSocketVO);
}
/**
* 发送检测错误消息给指定用户
* <p>用于推送特定类型的检测错误信息</p>
*
* @param userId 目标用户ID
* @param requestId 请求ID
* @param errorType 错误类型枚举
* @since v2.3.12 重构版本
*/
public static void sendDetectionErrorMessage(String userId, String requestId, SourceOperateCodeEnum errorType) {
WebSocketVO<Object> webSocketVO = new WebSocketVO<>();
webSocketVO.setRequestId(requestId);
webSocketVO.setData(errorType.getMsg());
webSocketVO.setOperateCode(errorType.getValue());
sendMessage(userId, webSocketVO);
}
}