Commit c084d6c98af1ef4d36a61adc719df5db76589428
1 parent
4c28f380
优化国标级联心跳失败判断逻辑
Showing
2 changed files
with
11 additions
and
13 deletions
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java
| ... | ... | @@ -203,8 +203,8 @@ public abstract class SIPRequestProcessorParent { |
| 203 | 203 | try { |
| 204 | 204 | xml = reader.read(new ByteArrayInputStream(bytesResult)); |
| 205 | 205 | }catch (DocumentException e) { |
| 206 | - logger.warn("[xml解析异常]: 愿文如下: \r\n{}", new String(bytesResult)); | |
| 207 | - logger.warn("[xml解析异常]: 愿文如下: 尝试兼容性处理"); | |
| 206 | + logger.warn("[xml解析异常]: 原文如下: \r\n{}", new String(bytesResult)); | |
| 207 | + logger.warn("[xml解析异常]: 原文如下: 尝试兼容性处理"); | |
| 208 | 208 | String[] xmlLineArray = new String(bytesResult).split("\\r?\\n"); |
| 209 | 209 | |
| 210 | 210 | // 兼容海康的address字段带有<破换xml结构导致无法解析xml的问题 | ... | ... |
src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java
| ... | ... | @@ -233,19 +233,17 @@ public class PlatformServiceImpl implements IPlatformService { |
| 233 | 233 | try { |
| 234 | 234 | commanderForPlatform.keepalive(parentPlatform, eventResult -> { |
| 235 | 235 | // 心跳失败 |
| 236 | - if (eventResult.type == SipSubscribe.EventResultType.timeout) { | |
| 237 | - // 心跳超时 | |
| 238 | - ParentPlatformCatch platformCatch = redisCatchStorage.queryPlatformCatchInfo(parentPlatform.getServerGBId()); | |
| 239 | - // 此时是第三次心跳超时, 平台离线 | |
| 240 | - if (platformCatch.getKeepAliveReply() == 2) { | |
| 241 | - // 设置平台离线,并重新注册 | |
| 242 | - logger.info("[国标级联] 三次心跳超时, 平台{}({})离线", parentPlatform.getName(), parentPlatform.getServerGBId()); | |
| 243 | - offline(parentPlatform, false); | |
| 244 | - } | |
| 245 | - | |
| 246 | - }else { | |
| 236 | + if (eventResult.type != SipSubscribe.EventResultType.timeout) { | |
| 247 | 237 | logger.warn("[国标级联]发送心跳收到错误,code: {}, msg: {}", eventResult.statusCode, eventResult.msg); |
| 248 | 238 | } |
| 239 | + // 心跳失败 | |
| 240 | + ParentPlatformCatch platformCatch = redisCatchStorage.queryPlatformCatchInfo(parentPlatform.getServerGBId()); | |
| 241 | + // 此时是第三次心跳超时, 平台离线 | |
| 242 | + if (platformCatch.getKeepAliveReply() == 2) { | |
| 243 | + // 设置平台离线,并重新注册 | |
| 244 | + logger.info("[国标级联] 三次心跳超时, 平台{}({})离线", parentPlatform.getName(), parentPlatform.getServerGBId()); | |
| 245 | + offline(parentPlatform, false); | |
| 246 | + } | |
| 249 | 247 | |
| 250 | 248 | }, eventResult -> { |
| 251 | 249 | // 心跳成功 | ... | ... |