重构message后bug解决

pull/231/head
fansc 2021-11-17 10:43:46 +08:00
parent 9561e952a3
commit ef3fe47e18
21 changed files with 37 additions and 28 deletions

View File

@ -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.Device;
import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
import org.dom4j.DocumentException;
import org.dom4j.Element; import org.dom4j.Element;
import javax.sip.RequestEvent; import javax.sip.RequestEvent;
@ -12,12 +13,12 @@ public interface IMessageHandler {
* @param evt * @param evt
* @param device * @param device
*/ */
void handForDevice(RequestEvent evt, Device device, Element element); void handForDevice(RequestEvent evt, Device device, Element element) throws DocumentException;
/** /**
* *
* @param evt * @param evt
* @param parentPlatform * @param parentPlatform
*/ */
void handForPlatform(RequestEvent evt, ParentPlatform parentPlatform, Element element); void handForPlatform(RequestEvent evt, ParentPlatform parentPlatform, Element element) throws DocumentException;
} }

View File

@ -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.Device;
import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent; import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
import org.dom4j.DocumentException;
import org.dom4j.Element; import org.dom4j.Element;
import org.springframework.beans.factory.annotation.Autowired; 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 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 @Autowired
public MessageRequestProcessor messageRequestProcessor; public MessageRequestProcessor messageRequestProcessor;
public void addHandler(String cmdType, IMessageHandler messageHandler) { public void addHandler(String messageType, String cmdType, IMessageHandler messageHandler) {
messageHandlerMap.put(cmdType, messageHandler); if (!messageHandlerMap.containsKey(cmdType)){
messageHandlerMap.put(cmdType, new ConcurrentHashMap<>());
}else{
Map<String, IMessageHandler> messageAllHandlerMap = messageHandlerMap.get(cmdType);
messageAllHandlerMap.put(messageType, messageHandler);
}
} }
@Override @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"); String cmd = getText(element, "CmdType");
IMessageHandler messageHandler = messageHandlerMap.get(cmd); IMessageHandler messageHandler = messageHandlerMap.get(cmd).get(name);
if (messageHandler != null) { if (messageHandler != null) {
messageHandler.handForDevice(evt, device, element); messageHandler.handForDevice(evt, device, element);
} }
} }
@Override @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"); String cmd = getText(element, "CmdType");
IMessageHandler messageHandler = messageHandlerMap.get(cmd); IMessageHandler messageHandler = messageHandlerMap.get(cmd).get(name);
if (messageHandler != null) { if (messageHandler != null) {
messageHandler.handForPlatform(evt, parentPlatform, element); messageHandler.handForPlatform(evt, parentPlatform, element);
} }

View File

@ -49,7 +49,7 @@ public class AlarmNotifyMessageHandler extends SIPRequestProcessorParent impleme
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
notifyMessageHandler.addHandler(cmdType, this); notifyMessageHandler.addHandler("Notify", cmdType, this);
} }
@Override @Override

View File

@ -51,7 +51,7 @@ public class CatalogNotifyMessageHandler extends SIPRequestProcessorParent imple
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
notifyMessageHandler.addHandler(cmdType, this); notifyMessageHandler.addHandler("Notify", cmdType, this);
} }
@Override @Override

View File

@ -34,7 +34,7 @@ public class KeepaliveNotifyMessageHandler extends SIPRequestProcessorParent imp
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
notifyMessageHandler.addHandler(cmdType, this); notifyMessageHandler.addHandler("Notify", cmdType, this);
} }
@Override @Override

View File

@ -40,7 +40,7 @@ public class MediaStatusNotifyMessageHandler extends SIPRequestProcessorParent i
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
notifyMessageHandler.addHandler(cmdType, this); notifyMessageHandler.addHandler("Notify", cmdType, this);
} }
@Override @Override

View File

@ -45,7 +45,7 @@ public class MobilePositionNotifyMessageHandler extends SIPRequestProcessorParen
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
notifyMessageHandler.addHandler(cmdType, this); notifyMessageHandler.addHandler("Notify", cmdType, this);
} }
@Override @Override

View File

@ -51,7 +51,7 @@ public class CatalogQueryMessageHandler extends SIPRequestProcessorParent implem
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
queryMessageHandler.addHandler(cmdType, this); queryMessageHandler.addHandler("Query", cmdType, this);
} }
@Override @Override

View File

@ -50,7 +50,7 @@ public class DeviceControlQueryMessageHandler extends SIPRequestProcessorParent
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
queryMessageHandler.addHandler(cmdType, this); queryMessageHandler.addHandler("Query", cmdType, this);
} }
@Override @Override

View File

@ -34,7 +34,7 @@ public class DeviceInfoQueryMessageHandler extends SIPRequestProcessorParent imp
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
queryMessageHandler.addHandler(cmdType, this); queryMessageHandler.addHandler("Query", cmdType, this);
} }
@Override @Override

View File

@ -46,7 +46,7 @@ public class DeviceStatusQueryMessageHandler extends SIPRequestProcessorParent i
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
queryMessageHandler.addHandler(cmdType, this); queryMessageHandler.addHandler("Query", cmdType, this);
} }
@Override @Override

View File

@ -32,7 +32,7 @@ public class AlarmResponseMessageHandler extends SIPRequestProcessorParent imple
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
responseMessageHandler.addHandler(cmdType, this); responseMessageHandler.addHandler("Response",cmdType, this);
} }
@Override @Override

View File

@ -38,7 +38,7 @@ public class BroadcastResponseMessageHandler extends SIPRequestProcessorParent i
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
responseMessageHandler.addHandler(cmdType, this); responseMessageHandler.addHandler("Response", cmdType, this);
} }
@Override @Override

View File

@ -57,7 +57,7 @@ public class CatalogResponseMessageHandler extends SIPRequestProcessorParent imp
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
responseMessageHandler.addHandler(cmdType, this); responseMessageHandler.addHandler("Response", cmdType, this);
} }
@Override @Override

View File

@ -42,7 +42,7 @@ public class ConfigDownloadResponseMessageHandler extends SIPRequestProcessorPar
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
responseMessageHandler.addHandler(cmdType, this); responseMessageHandler.addHandler("Response", cmdType, this);
} }

View File

@ -34,7 +34,7 @@ public class DeviceConfigResponseMessageHandler extends SIPRequestProcessorParen
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
responseMessageHandler.addHandler(cmdType, this); responseMessageHandler.addHandler("Response",cmdType, this);
} }
@Override @Override

View File

@ -34,7 +34,7 @@ public class DeviceControlResponseMessageHandler extends SIPRequestProcessorPare
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
responseMessageHandler.addHandler(cmdType, this); responseMessageHandler.addHandler("Response", cmdType, this);
} }
@Override @Override

View File

@ -55,7 +55,7 @@ public class DeviceInfoResponseMessageHandler extends SIPRequestProcessorParent
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
responseMessageHandler.addHandler(cmdType, this); responseMessageHandler.addHandler("Response", cmdType, this);
} }
@Override @Override

View File

@ -45,7 +45,7 @@ public class DeviceStatusResponseMessageHandler extends SIPRequestProcessorParen
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
responseMessageHandler.addHandler(cmdType, this); responseMessageHandler.addHandler("Response", cmdType, this);
} }
@Override @Override

View File

@ -45,7 +45,7 @@ public class MobilePositionResponseMessageHandler extends SIPRequestProcessorPar
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
responseMessageHandler.addHandler(cmdType, this); responseMessageHandler.addHandler("Response", cmdType, this);
} }
@Override @Override

View File

@ -51,7 +51,7 @@ public class RecordInfoResponseMessageHandler extends SIPRequestProcessorParent
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
responseMessageHandler.addHandler(cmdType, this); responseMessageHandler.addHandler("Response", cmdType, this);
} }
@Override @Override