重构message后bug解决
parent
9561e952a3
commit
ef3fe47e18
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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<String, IMessageHandler> messageHandlerMap = new ConcurrentHashMap<>();
|
||||
public static Map<String, Map<String, IMessageHandler>> 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<String, IMessageHandler> 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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -42,7 +42,7 @@ public class ConfigDownloadResponseMessageHandler extends SIPRequestProcessorPar
|
|||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
responseMessageHandler.addHandler(cmdType, this);
|
||||
responseMessageHandler.addHandler("Response", cmdType, this);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue