648540858
2023-07-31 3cada227435934da8a2db49939695f870b7f477e
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java
@@ -59,6 +59,7 @@
            // 未注册的设备不做处理
            return;
        }
        logger.info("[收到心跳], device: {}", device.getDeviceId());
        SIPRequest request = (SIPRequest) evt.getRequest();
        // 回复200 OK
        try {
@@ -78,17 +79,19 @@
            device.setKeepaliveIntervalTime(60);
        }else {
            long lastTime = DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(device.getKeepaliveTime());
            device.setKeepaliveIntervalTime(new Long(System.currentTimeMillis()/1000-lastTime).intValue());
            if (System.currentTimeMillis()/1000-lastTime > 10) {
                device.setKeepaliveIntervalTime(new Long(System.currentTimeMillis()/1000-lastTime).intValue());
            }
        }
        device.setKeepaliveTime(DateUtil.getNow());
        if (device.getOnline() == 1) {
        if (device.isOnLine()) {
            deviceService.updateDevice(device);
        }else {
            // 对于已经离线的设备判断他的注册是否已经过期
            if (!deviceService.expire(device)){
                device.setOnline(0);
                device.setOnLine(false);
                deviceService.online(device, null);
            }
        }