648540858
2023-10-07 c084d6c98af1ef4d36a61adc719df5db76589428
优化国标级联心跳失败判断逻辑
2个文件已修改
14 ■■■■■ 已修改文件
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java
@@ -203,8 +203,8 @@
        try {
            xml = reader.read(new ByteArrayInputStream(bytesResult));
        }catch (DocumentException e) {
            logger.warn("[xml解析异常]: 愿文如下: \r\n{}", new String(bytesResult));
            logger.warn("[xml解析异常]: 愿文如下: 尝试兼容性处理");
            logger.warn("[xml解析异常]: 原文如下: \r\n{}", new String(bytesResult));
            logger.warn("[xml解析异常]: 原文如下: 尝试兼容性处理");
            String[] xmlLineArray = new String(bytesResult).split("\\r?\\n");
            // 兼容海康的address字段带有<破换xml结构导致无法解析xml的问题
src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java
@@ -233,18 +233,16 @@
                        try {
                            commanderForPlatform.keepalive(parentPlatform, eventResult -> {
                                // 心跳失败
                                if (eventResult.type == SipSubscribe.EventResultType.timeout) {
                                    // 心跳超时
                                if (eventResult.type != SipSubscribe.EventResultType.timeout) {
                                    logger.warn("[国标级联]发送心跳收到错误,code: {}, msg: {}", eventResult.statusCode, eventResult.msg);
                                }
                                // 心跳失败
                                    ParentPlatformCatch platformCatch = redisCatchStorage.queryPlatformCatchInfo(parentPlatform.getServerGBId());
                                    // 此时是第三次心跳超时, 平台离线
                                    if (platformCatch.getKeepAliveReply()  == 2) {
                                        // 设置平台离线,并重新注册
                                        logger.info("[国标级联] 三次心跳超时, 平台{}({})离线", parentPlatform.getName(), parentPlatform.getServerGBId());
                                        offline(parentPlatform, false);
                                    }
                                }else {
                                    logger.warn("[国标级联]发送心跳收到错误,code: {}, msg: {}", eventResult.statusCode, eventResult.msg);
                                }
                            }, eventResult -> {