重构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.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;
}

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.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);
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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