重启后对心跳超时的设备设置为离线。

This commit is contained in:
64850858
2021-07-26 13:21:03 +08:00
parent c3ee8ec4b2
commit ea32cd2673
4 changed files with 73 additions and 9 deletions

View File

@@ -771,19 +771,31 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor {
Element rootElement = getRootElement(evt);
String deviceId = XmlUtil.getText(rootElement, "DeviceID");
Device device = storager.queryVideoDevice(deviceId);
// 检查设备是否存在并在线, 不存在则不回复
if (device != null && device.getOnline() == 1) {
// 检查设备是否存在并在线, 不在线则设置为在线
if (device != null ) {
// 回复200 OK
responseAck(evt);
if (offLineDetector.isOnline(deviceId)) {
publisher.onlineEventPublish(device, VideoManagerConstants.EVENT_ONLINE_KEEPLIVE);
} else {
}
}else {
logger.warn("收到[ "+deviceId+" ]心跳信息, 但是设备" + (device == null? "不存在":"离线") + ", 回复401");
Response response = getMessageFactory().createResponse(Response.UNAUTHORIZED, evt.getRequest());
publisher.onlineEventPublish(device, VideoManagerConstants.EVENT_ONLINE_KEEPLIVE);
}else{
logger.warn("收到[ "+deviceId+" ]心跳信息, 但是设备不存在, 回复404");
Response response = getMessageFactory().createResponse(Response.NOT_FOUND, evt.getRequest());
getServerTransaction(evt).sendResponse(response);
}
// if (device != null && device.getOnline() == 1) {
//
// if (offLineDetector.isOnline(deviceId)) {
// publisher.onlineEventPublish(device, VideoManagerConstants.EVENT_ONLINE_KEEPLIVE);
// } else {
// }
// }else {
//// logger.warn("收到[ "+deviceId+" ]心跳信息, 但是设备" + (device == null? "不存在":"离线") + ", 回复401");
//// Response response = getMessageFactory().createResponse(Response.UNAUTHORIZED, evt.getRequest());
//// getServerTransaction(evt).sendResponse(response);
// publisher.onlineEventPublish(device, VideoManagerConstants.EVENT_ONLINE_KEEPLIVE);
//
// }
} catch (ParseException | SipException | InvalidArgumentException | DocumentException e) {
e.printStackTrace();
}