diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/IMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/IMessageHandler.java index 7eba0d52..5cf6bea8 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/IMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/IMessageHandler.java @@ -2,6 +2,7 @@ package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; +import org.dom4j.DocumentException; import org.dom4j.Element; import javax.sip.RequestEvent; @@ -12,12 +13,12 @@ public interface IMessageHandler { * @param evt * @param device */ - void handForDevice(RequestEvent evt, Device device, Element element); + void handForDevice(RequestEvent evt, Device device, Element element) throws DocumentException; /** * 处理来自平台的信息 * @param evt * @param parentPlatform */ - void handForPlatform(RequestEvent evt, ParentPlatform parentPlatform, Element element); + void handForPlatform(RequestEvent evt, ParentPlatform parentPlatform, Element element) throws DocumentException; } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageHandlerAbstract.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageHandlerAbstract.java index efc8259c..f4adc619 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageHandlerAbstract.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageHandlerAbstract.java @@ -3,6 +3,7 @@ package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent; +import org.dom4j.DocumentException; import org.dom4j.Element; import org.springframework.beans.factory.annotation.Autowired; @@ -14,28 +15,35 @@ import static com.genersoft.iot.vmp.gb28181.utils.XmlUtil.getText; public abstract class MessageHandlerAbstract extends SIPRequestProcessorParent implements IMessageHandler{ - public static Map messageHandlerMap = new ConcurrentHashMap<>(); + public static Map> messageHandlerMap = new ConcurrentHashMap<>(); @Autowired public MessageRequestProcessor messageRequestProcessor; - public void addHandler(String cmdType, IMessageHandler messageHandler) { - messageHandlerMap.put(cmdType, messageHandler); + public void addHandler(String messageType, String cmdType, IMessageHandler messageHandler) { + if (!messageHandlerMap.containsKey(cmdType)){ + messageHandlerMap.put(cmdType, new ConcurrentHashMap<>()); + }else{ + Map messageAllHandlerMap = messageHandlerMap.get(cmdType); + messageAllHandlerMap.put(messageType, messageHandler); + } } @Override - public void handForDevice(RequestEvent evt, Device device, Element element) { + public void handForDevice(RequestEvent evt, Device device, Element element) throws DocumentException { + String name = getRootElement(evt).getName(); String cmd = getText(element, "CmdType"); - IMessageHandler messageHandler = messageHandlerMap.get(cmd); + IMessageHandler messageHandler = messageHandlerMap.get(cmd).get(name); if (messageHandler != null) { messageHandler.handForDevice(evt, device, element); } } @Override - public void handForPlatform(RequestEvent evt, ParentPlatform parentPlatform, Element element) { + public void handForPlatform(RequestEvent evt, ParentPlatform parentPlatform, Element element) throws DocumentException { + String name = getRootElement(evt).getName(); String cmd = getText(element, "CmdType"); - IMessageHandler messageHandler = messageHandlerMap.get(cmd); + IMessageHandler messageHandler = messageHandlerMap.get(cmd).get(name); if (messageHandler != null) { messageHandler.handForPlatform(evt, parentPlatform, element); } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/AlarmNotifyMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/AlarmNotifyMessageHandler.java index 511083c0..b33885d1 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/AlarmNotifyMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/AlarmNotifyMessageHandler.java @@ -49,7 +49,7 @@ public class AlarmNotifyMessageHandler extends SIPRequestProcessorParent impleme @Override public void afterPropertiesSet() throws Exception { - notifyMessageHandler.addHandler(cmdType, this); + notifyMessageHandler.addHandler("Notify", cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/CatalogNotifyMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/CatalogNotifyMessageHandler.java index 497f421b..f5f80b2f 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/CatalogNotifyMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/CatalogNotifyMessageHandler.java @@ -51,7 +51,7 @@ public class CatalogNotifyMessageHandler extends SIPRequestProcessorParent imple @Override public void afterPropertiesSet() throws Exception { - notifyMessageHandler.addHandler(cmdType, this); + notifyMessageHandler.addHandler("Notify", cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java index 05e8bd71..a853f224 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java @@ -34,7 +34,7 @@ public class KeepaliveNotifyMessageHandler extends SIPRequestProcessorParent imp @Override public void afterPropertiesSet() throws Exception { - notifyMessageHandler.addHandler(cmdType, this); + notifyMessageHandler.addHandler("Notify", cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MediaStatusNotifyMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MediaStatusNotifyMessageHandler.java index c61b7279..a0b2df67 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MediaStatusNotifyMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MediaStatusNotifyMessageHandler.java @@ -40,7 +40,7 @@ public class MediaStatusNotifyMessageHandler extends SIPRequestProcessorParent i @Override public void afterPropertiesSet() throws Exception { - notifyMessageHandler.addHandler(cmdType, this); + notifyMessageHandler.addHandler("Notify", cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MobilePositionNotifyMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MobilePositionNotifyMessageHandler.java index ab7e5f63..cd3cc997 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MobilePositionNotifyMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MobilePositionNotifyMessageHandler.java @@ -45,7 +45,7 @@ public class MobilePositionNotifyMessageHandler extends SIPRequestProcessorParen @Override public void afterPropertiesSet() throws Exception { - notifyMessageHandler.addHandler(cmdType, this); + notifyMessageHandler.addHandler("Notify", cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/CatalogQueryMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/CatalogQueryMessageHandler.java index 98ed2dc4..609c53e8 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/CatalogQueryMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/CatalogQueryMessageHandler.java @@ -51,7 +51,7 @@ public class CatalogQueryMessageHandler extends SIPRequestProcessorParent implem @Override public void afterPropertiesSet() throws Exception { - queryMessageHandler.addHandler(cmdType, this); + queryMessageHandler.addHandler("Query", cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceControlQueryMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceControlQueryMessageHandler.java index 1c4a166b..6e962528 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceControlQueryMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceControlQueryMessageHandler.java @@ -50,7 +50,7 @@ public class DeviceControlQueryMessageHandler extends SIPRequestProcessorParent @Override public void afterPropertiesSet() throws Exception { - queryMessageHandler.addHandler(cmdType, this); + queryMessageHandler.addHandler("Query", cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceInfoQueryMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceInfoQueryMessageHandler.java index 8234cb15..c42e4d3a 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceInfoQueryMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceInfoQueryMessageHandler.java @@ -34,7 +34,7 @@ public class DeviceInfoQueryMessageHandler extends SIPRequestProcessorParent imp @Override public void afterPropertiesSet() throws Exception { - queryMessageHandler.addHandler(cmdType, this); + queryMessageHandler.addHandler("Query", cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceStatusQueryMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceStatusQueryMessageHandler.java index c56151cd..e22b48dc 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceStatusQueryMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceStatusQueryMessageHandler.java @@ -46,7 +46,7 @@ public class DeviceStatusQueryMessageHandler extends SIPRequestProcessorParent i @Override public void afterPropertiesSet() throws Exception { - queryMessageHandler.addHandler(cmdType, this); + queryMessageHandler.addHandler("Query", cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/AlarmResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/AlarmResponseMessageHandler.java index 8492bd96..9d015fa6 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/AlarmResponseMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/AlarmResponseMessageHandler.java @@ -32,7 +32,7 @@ public class AlarmResponseMessageHandler extends SIPRequestProcessorParent imple @Override public void afterPropertiesSet() throws Exception { - responseMessageHandler.addHandler(cmdType, this); + responseMessageHandler.addHandler("Response",cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/BroadcastResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/BroadcastResponseMessageHandler.java index ac946551..55b9fb3d 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/BroadcastResponseMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/BroadcastResponseMessageHandler.java @@ -38,7 +38,7 @@ public class BroadcastResponseMessageHandler extends SIPRequestProcessorParent i @Override public void afterPropertiesSet() throws Exception { - responseMessageHandler.addHandler(cmdType, this); + responseMessageHandler.addHandler("Response", cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java index 7349a7ac..aa01cd10 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java @@ -57,7 +57,7 @@ public class CatalogResponseMessageHandler extends SIPRequestProcessorParent imp @Override public void afterPropertiesSet() throws Exception { - responseMessageHandler.addHandler(cmdType, this); + responseMessageHandler.addHandler("Response", cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/ConfigDownloadResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/ConfigDownloadResponseMessageHandler.java index d1a2893f..235de6b0 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/ConfigDownloadResponseMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/ConfigDownloadResponseMessageHandler.java @@ -42,7 +42,7 @@ public class ConfigDownloadResponseMessageHandler extends SIPRequestProcessorPar @Override public void afterPropertiesSet() throws Exception { - responseMessageHandler.addHandler(cmdType, this); + responseMessageHandler.addHandler("Response", cmdType, this); } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceConfigResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceConfigResponseMessageHandler.java index 68ffe394..b7df9a7f 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceConfigResponseMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceConfigResponseMessageHandler.java @@ -34,7 +34,7 @@ public class DeviceConfigResponseMessageHandler extends SIPRequestProcessorParen @Override public void afterPropertiesSet() throws Exception { - responseMessageHandler.addHandler(cmdType, this); + responseMessageHandler.addHandler("Response",cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceControlResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceControlResponseMessageHandler.java index 69f664bb..6aa2c145 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceControlResponseMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceControlResponseMessageHandler.java @@ -34,7 +34,7 @@ public class DeviceControlResponseMessageHandler extends SIPRequestProcessorPare @Override public void afterPropertiesSet() throws Exception { - responseMessageHandler.addHandler(cmdType, this); + responseMessageHandler.addHandler("Response", cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceInfoResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceInfoResponseMessageHandler.java index 78fc9361..1eea71d0 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceInfoResponseMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceInfoResponseMessageHandler.java @@ -55,7 +55,7 @@ public class DeviceInfoResponseMessageHandler extends SIPRequestProcessorParent @Override public void afterPropertiesSet() throws Exception { - responseMessageHandler.addHandler(cmdType, this); + responseMessageHandler.addHandler("Response", cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceStatusResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceStatusResponseMessageHandler.java index 1a7ab643..fb08c191 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceStatusResponseMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceStatusResponseMessageHandler.java @@ -45,7 +45,7 @@ public class DeviceStatusResponseMessageHandler extends SIPRequestProcessorParen @Override public void afterPropertiesSet() throws Exception { - responseMessageHandler.addHandler(cmdType, this); + responseMessageHandler.addHandler("Response", cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/MobilePositionResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/MobilePositionResponseMessageHandler.java index b456386f..d7a48196 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/MobilePositionResponseMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/MobilePositionResponseMessageHandler.java @@ -45,7 +45,7 @@ public class MobilePositionResponseMessageHandler extends SIPRequestProcessorPar @Override public void afterPropertiesSet() throws Exception { - responseMessageHandler.addHandler(cmdType, this); + responseMessageHandler.addHandler("Response", cmdType, this); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/RecordInfoResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/RecordInfoResponseMessageHandler.java index f1919da4..5cab0c87 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/RecordInfoResponseMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/RecordInfoResponseMessageHandler.java @@ -51,7 +51,7 @@ public class RecordInfoResponseMessageHandler extends SIPRequestProcessorParent @Override public void afterPropertiesSet() throws Exception { - responseMessageHandler.addHandler(cmdType, this); + responseMessageHandler.addHandler("Response", cmdType, this); } @Override