事件订阅

接口说明

事件订阅接口,对外监听类型(monitorType)是url,要求post请求无鉴权或者鉴权固定带在url上能访问,参数为json形式的对象(通用事件格式)。
订阅者名称需唯一,可识别,便于修改订阅信息,如示例:10.35.111.10_8010、10.35.111.10_8010_alarm
authorities/types/orgs/nodeCodes设置{}或字段不定义代表订阅所有,设置[]代表不订阅
orgs与nodeCodes分别是组织与设备/通道,两者是并集(条件是orgs || nodeCodes)
orgs=[A],nodeCodes=[B],则过滤条件是根据A||B判断 ,不是A&&B
仅根据orgs过滤,则需设置nodeCodes=[],否则会订阅所有
仅根据nodeCodes过滤,则需设置orgs=[],否则会订阅所有

前置条件

监听地址必须在ICC服务器上telnet通(非本地通,存在网络策略、防火墙等限制)
监听地址数据提交格式必须application/json、POST请求方法

接口配套版本信息

智能物联综合管理平台iConnection Center V5.0.6及以上版本

接口版本

1.0.0

接口URL

/evo-apigw/evo-event/1.0.0/subscribe/mqinfo

请求Method

POST

数据提交格式

application/json

请求参数

参数名必选类型说明
paramobject方法参数
+monitorsarray监听组
++monitorstring(0,128)监听地址url地址(由第三方提供,必须在ICC服务器上telnet通),要求Method=POST,请求头与响应头必须ContentType=application/json,无鉴权或者鉴权固定带在url上,参数为json形式的对象(通用事件格式);
订阅接收服务参考SDK demo的com.dahuatech.icc.demo.event.ReceiveSubscribeController中的event、event2、event3方法;
实时接收的消息体示例参考通用事件格式说明
++monitorTypestring(0,64)监听类型,固定值为:url
++eventsarray监听对象
+++categorystring(0,64)事件大类,参考事件大类枚举
+++authoritiesarray权限组
++++typesarray(0,64)类型列表,没有该字段就是订阅所有,空数组代表不订阅
当category是alarm时,为设备或子系统自定义的报警消息,types参考事件类型-报警类型
当category为business时,为业务事件,一般是子系统上报的业务消息,types参考事件类型-业务类型
当category为perception时,为移动设备上报的消息,types参考事件类型-感知类类型
当category为state时,设备状态变化推送消息,无需送
++++orgsarray(0,90)组织列表,没有该字段就是订阅所有,空数组代表不订阅,参考"基础资源>组织管理"获取的组织编码
++++nodeCodesarray(0,64)设备和通道列表,没有该字段就是订阅所有,空数组代表不订阅,参考"基础资源>设备管理"获取的设备编码和通道编码
+++gradesarray(1)报警等级列表,1>2>3 没有该字段就是所有,空数组代表不订阅
+++subscribeAllint(1)是否订阅所有,仅限客户端(web,client,app)使用,0代表不订阅,1代表订阅所有authorities,报警,设备状态会过滤权限,不传不处理
+++domainSubscribeint(1)级联订阅,不填,没有该字段,0,代表本级,1代表下级,2代表本级+下级 ,默认值0
+++schemeint(1)是否过预案才转发,1表示要过预案才转发,0表示不需要过预案,针对有联动动作的子系统,如果这个有联动这个子系统,则转发,默认值0
+++eventTypeint(1)事件类型,category为alarm使用,2表示报警,1表示事件,0表示报警和事件,默认0(过预案的为报警,否则是事件)
+subsystemobject订阅者信息
++subsystemTypeint(1)系统类型,0代表子系统 固定值:0
++nameString(0,50)订阅者名称,唯一,建议与magic一样,也可按照ip_port_业务模块,例如10.35.111.10_8010_alarm
name存在则覆盖之前的订阅内容;name不存在则新增
++magicString(0,30)订阅者ip端口,子系统填ip_port, ip、port为字段monitor中的ip与端口

请求参数示例

 {
    "param": {
        "monitors": [
            {
                "monitor": "http://10.35.111.10:8010/eventReceiveMsg/save",
                "monitorType": "url",
                "events": [
                    {
                        "category": "alarm",
                        "subscribeAll": 1,
                        "domainSubscribe": 2,
                        "authorities": [
                            {
                                "types": [
                                    "57",
                                    "51",
                                    "61"
                                ]
                            }
                        ]
                    },
                    {
                        "category": "business",
                        "subscribeAll": 1,
                        "domainSubscribe": 2,
                        "authorities": [
                            {
                                "types": [
                                    "car.capture",
                                    "car.access"
                                ]
                            }
                        ]
                    },
					{
                        "category": "state",//事件类别,非报警事件无grade值
                        "subscribeAll": 1,//是否订阅所有(设备状态订阅所有过滤权限)
                        "domainSubscribe":2,
                        "authorities":[ //权限信息数组
                            {
                                "nodeCodes":[ //设备或通道,没有该字段就是订阅所有,空数组代表不订阅
                                               "1000001",
                                               "1000002$1$0$1"
                                     ]
                            }
                        ]
                    },
					{
                        "category": "perception",//事件类别,非报警事件无grade值
                        "subscribeAll": 1,//是否订阅所有(设备状态订阅所有过滤权限)
                        "domainSubscribe":2,
                        "authorities":[ //权限信息数组
                            {
                                "types":[ //设备或通道,没有该字段就是订阅所有,空数组代表不订阅
                                               "pmms.perception.msg",
                                               "reportGPSInfo"
                                     ]
                            }
                        ]
                    }
                ]
            }
        ],
        "subsystem": {
            "subsystemType": 0,//固定值:0
            "name": "10.35.111.10_8010",
            "magic": "10.35.111.10_8010"
        }
    }
}

其他示例参考订阅示例

请求DEMO

参考demo方法【com.dahuatech.icc.demo.event.eventSubscribe.SubscribeDemo.subscribeAlarmEvent】

        /**
     * 订阅报警事件
     */
    public void subscribeAlarmEvent(){
        SubscribeRequest subscribeRequest = new SubscribeRequest();
        SubscribeRequest.Param param = new SubscribeRequest.Param();

        SubscribeRequest.Param.Subsystem subsystem = new SubscribeRequest.Param.Subsystem();
        subsystem.setName("10.54.20.33_8003");
        subsystem.setMagic("10.54.20.33_8003");
        param.setSubsystem(subsystem);

        List<SubscribeRequest.Param.Monitor> monitors = new ArrayList();
        SubscribeRequest.Param.Monitor monitor = new SubscribeRequest.Param.Monitor();
        //回调地址的接口代码可参考SubscribeCallBackController类中的receiveMsg方法
        monitor.setMonitor("http://10.54.20.33:8003/receiveMsg");

        List<SubscribeRequest.Param.Monitor.Event>events = new ArrayList<>();
        SubscribeRequest.Param.Monitor.Event event = new SubscribeRequest.Param.Monitor.Event();
        //订阅报警事件,填alarm
        event.setCategory("alarm");
        List<SubscribeRequest.Param.Monitor.Event.Authority> authorities = new ArrayList();
        SubscribeRequest.Param.Monitor.Event.Authority authority=new SubscribeRequest.Param.Monitor.Event.Authority();

        //若订阅指定报警类型可参考下列代码进行修改,若订阅所有报警类型,则把下列types相关代码删除即可
        List<String> types= new ArrayList<>();
        types.add("57");
        types.add("51");
        types.add("61");
        authority.setTypes(types);

        //若订阅指定组织可参考下列代码进行修改,若订阅所有组织,则将下列orgs相关代码删除
        List<String>orgs = new ArrayList<>();
        orgs.add("001001");
        orgs.add("001002");
        authority.setOrgs(orgs);

        //若订阅指定设备和通道可参考下列代码进行修改,若订阅所有设备和通道,则将下列nodeCodes相关代码删除
        List<String>nodeCodes=new ArrayList();
        nodeCodes.add("1002511$7$0$0");
        nodeCodes.add("1002509$7$0$0");
        authority.setNodeCodes(nodeCodes);

        authorities.add(authority);
        event.setAuthorities(authorities);
        events.add(event);
        monitor.setEvents(events);
        monitors.add(monitor);
        param.setMonitors(monitors);
        subscribeRequest.setParam(param);
        log.info("SubscribeDemo,subscribeAlarmEvent,request:{}", JSONUtil.toJsonStr(subscribeRequest));

        OauthConfigUserPwdInfo config = OauthConfigUtil.getOauthConfig();
        try {
            GeneralResponse response = HttpUtils.executeJson("/evo-apigw/evo-event/1.0.0/subscribe/mqinfo", subscribeRequest,null, Method.POST, config,GeneralResponse.class);
            log.info("SubscribeDemo,subscribeAlarmEvent,response:{}", response.getResult());
        } catch (ClientException e) {
            log.error(e.getErrMsg(), e);
        }
    }

返回参数

名称类型说明
successboolean接口返回是否成功
codestring错误码:0为无错误,非0为具体错误码;0代表事件订阅成功,不代表可以接收成功,需保证订阅监听地址在ICC服务器telnet通
errMsgstring错误消息
dataobject返回数据对象

返回参数示例(成功)

{
    "success": true,
    "data": {},
    "code": "0",
    "errMsg": ""
}
事件订阅成功,却接收不到排查步骤
  1. 事件订阅送的URL(monitor)在ICC服务器上必须telnet通,可通过命令wget ip:端口验证
  2. 报警事件则查看ICC平台-事件查询页面是否存在记录,非报警记录跳过
  3. 查看推送日志,日志文件:/log/evo-event/evo-event_track.log
      根据回调监听地址搜索evo-event_track.log
      查看关键字703019行数,带有请求的一行为请求入参,带有返回一行为返回日志
      若回调地址网络链接报错,会有日志打印
  4. ICC服务器上尝试curl命令看下报错信息
      命令:curl -i -X POST -H 'Content-type':'application/json' -d body体 回调地址url
      https示例
curl -i -X POST -H 'Content-type':'application/json' -d '{"category":"state","info":{"syncChannelStatus":"1","subSystemName":["client1669947203469.1"],"updateTime":"2022-12-03 17:55:02.664","version":18,"channelId":"1000100$1$0$0","status":"2"},"method":"node.status","subsystem":"admin","uuid":"state_3ad3851b1bc84965bfb7598cb59a6240_1670061302669"}' -k --insecure https://10.55.36.202/evo-apigw/evo-oauth/1.0.0/oauth/extend/token

  http示例

curl -i -X POST -H 'Content-type':'application/json' -d '{"category":"state","info":{"syncChannelStatus":"1","subSystemName":["client1669947203469.1"],"updateTime":"2022-12-03 17:55:02.664","version":18,"channelId":"1000100$1$0$0","status":"2"},"method":"node.status","subsystem":"admin","uuid":"state_3ad3851b1bc84965bfb7598cb59a6240_1670061302669"}' http://10.55.36.202:83/evo-apigw/evo-oauth/1.0.0/oauth/extend/token
  1. 若是域名解析异常,报UnknownHostException: xxx异常
      域名仅内网访问时,配置下host,命令:vi /etc/hosts

      域名外网可访问时,ICC服务器需开通外网访问,自动解析域名
事件订阅接收数据为空

java语言接收,确定下是否为框架层面拦截器拦截
c#语言接收,确定下是否是异步接收处理机制,虽然进入方法,数据还未完全接收成功
python语言接收,考虑用json.dumps(消息体)兼容body体非严格json格式情况

  • 备注:

  • 只支持订阅接口中报警和设备状态有权限信息

  • 子系统name填子系统名称,magic填ip_port

  • 客户端name填鉴权中心返回的magicId.userId

  • alarm大类authorities支持types,orgs,nodeCodes

  • state大类authorities支持orgs,nodeCodes

  • business大类authorities支持types

  • perception大类authorities支持types

通用事件回调消息体格式说明
  • 1、配置监听地址(回调API地址,由三方提供),通过API文档-事件中心-事件订阅的事件订阅接口,监听地址要求如下:
    • 1.1、请求方法必须是POST
    • 1.2、请求头ContentType必须是application/json
    • 1.3、响应头ContentType必须是application/json
    • 1.4、监听地址无鉴权
    • 1.5、监听地址必须在ICC服务器上能访问(订阅成功接收不到多数原因是网络不通)
  • 2、明确订阅事件大类、事件大类下的事件类型
  • 3、接收实时事件,消息体格式参考以下通用报警格式、通用设备状态格式、通用业务信息格式、感知消息格式
通用报警格式
字段说明类型是否必填备注
category事件大类string(0,64)
method方法名string(0,64)
id序号long(0,20)
subsystem子系统名称string(0,50)
domainId域IDstring(0,4)级联消息下级发给mac时需要带上
info报警消息内容AlarmVO

AlarmVO

字段说明类型是否必填备注
deviceCode设备编码string(64)
deviceName设备名称string(0,64)
channelSeq通道序号int(0,10)
channelName通道名称string(0,64)
unitType单元类型int(0,3)
unitSeq单元号int(0,3)
alarmCode报警编号UUIDstring(0,50)
alarmStat报警状态int(0,3)1:报警产生,2:报警消失
alarmType报警类型int(0,16)
alarmGrade报警等级int(0,5)
alarmDate报警时间String时间戳 ,单位秒
alarmPicture报警图片路径string(0,500)图片相对地址,完整地址参考OSS方式
alarmPictureSize报警图片大小Long
memo备注string(0,64)
nodeType节点类型int(1)1设备,2通道
nodeCode设备编码或通道编码string(0,64)
orgCode节点所属组织编码string
orgName节点所属组织名称string
extend扩展对象object报警特有信息,每种报警均不一样

示例

{
	"category": "alarm",
	"info": {
		"chnId": "1000007$1$0$1",
		"orgName": "xxxxx",
		"nodeCode": "1000007$1$0$1",
		"deviceCode": "1000007",
		"alarmCode": "{F4E22771-B0DB-B047-BD16-0EC670FFF54C}",
		"alarmPicture": "",
		"nodeType": 2,
		"alarmDate": "1712124746",
		"deviceName": "xxxx热成像相机",
		"alarmGrade": 1,
		"isSave": true,
		"extend": {
			"params": {
				"AlarmId": 21621,
				"dTemperatureMinValue": 0,
				"stCoordinate": {
					"nx": 0,
					"ny": 0
				},
				"nAlarmContion": 3,
				"dTemperatureMaxValue": 0,
				"fTemperatureValue": 69.19999694824219,
				"nTemperatureUnit": 1,
				"PresetID": 0,
				"nAlarmCoordinatesCount": 4,
				"nResult": 2,
				"stuAlarmCoordinates": [{
					"nx": 0,
					"ny": 0
				}, {
					"nx": 0,
					"ny": 8192
				}, {
					"nx": 8192,
					"ny": 8192
				}, {
					"nx": 8192,
					"ny": 0
				}],
				"Name": ""
			}
		},
		"unitSeq": 0,
		"unitType": 1,
		"alarmType": 5120,
		"channelSeq": 1,
		"orgCode": "001003004001",
		"channelName": "xxxx热成像相机_视频通道_2",
		"alarmStat": 1,
		"event": false,
		"isEvent": false
	},
	"method": "alarm.msg",
	"subsystem": "admin",
	"uuid": "alarm_9f49d6e08efb406a80934699410f3011_1712124746116"
}
通用设备状态格式
字段说明类型是否必填备注
category事件大类string(0,64)
method方法名string(0,64)
id序号long(0,20)
subsystem子系统名称string(0,50)
domainId域IDstring(0,4)级联消息下级发给mac时需要带上
info设备状态消息内容StateVO

StateVO

字段说明类型是否必填备注
deviceCode设备编码string(0,64)
channelId通道编码string(0,64)
status在离线状态string1在线,0离线
offlineReason离线原因string(0,256)枚举参考设备离线原因
syncChannelStatus是否同步通道状态string(1)0不同步,1同步,默认1
updateTime更新时间string(0,32)YYYY-MM-DD hh:mm:ss.sss
{
	"id": 66,
	"category": "state",
	"method": "node.status",
	"info": {
		"syncChannelStatus": "1",
		"offlineReason": 0,
		"updateTime": "2023-12-16 10:32:12.440",
		"deviceCode": "1000366",
		"status": "0"
	},
	"subsystem": "evo-accesscontrol",
	"userIds": null,
	"sid": null,
	"domainId": null,
	"infoArray": null,
	"protocol": null,
	"supplementFlag": null,
	"uuid": "state_bcad644d794747929b23221e372ec381_1702693932518"
}
通用业务信息格式
字段说明类型是否必填备注
category事件大类string(0,64)
method方法名string(0,64)
id序号long(0,20)
subsystem子系统名称string(0,50)
domainId域IDstring(0,4)级联消息下级发给mac时需要带上
info业务消息内容BusinessVO业务消息一般是各个子系统自定义消息,字段完全不一样

BusinessVO

每个业务事件的业务消息内容均不一样,具体参考附录-事件列表下对应模块下的事件即可

示例1:停车场过车记录业务事件

参考附录-事件列表-停车管理-过车事件

示例2:访客预约状态变化事件

参考附录-事件列表-访客管理-访客状态变更信息

示例3:人员的增删改事件

参考附录-事件列表-基础事件-人员实时消息

感知消息格式
字段说明类型是否必填备注
category事件大类string(0,64)
method方法名string(0,64)
id序号long(0,20)
subsystem子系统名称string(0,50)
domainId域IDstring(0,4)级联消息下级发给mac时需要带上
info感知类消息内容PerceptionVO

PerceptionVO

字段说明类型是否必填备注
deviceCode设备编码string接口透传,参数长度由业务端控制
deviceName设备名称string接口透传,参数长度由业务端控制
channelSeq通道序号int接口透传,参数长度由业务端控制
channelName通道名称string接口透传,参数长度由业务端控制
channelCode通道编码string接口透传,参数长度由业务端控制
signalCode点位编码string接口透传,参数长度由业务端控制
signalName点位名称string接口透传,参数长度由业务端控制
measuredVal测量值string接口透传,参数长度由业务端控制
measuredValName测量值含义string接口透传,参数长度由业务端控制
setupVal点位设置值string接口透传,参数长度由业务端控制
signalUnit点位单位string接口透传,参数长度由业务端控制

动环设备感知消息示例

{
 	"id":1,//id序号
 	"category": "perception",//固定
 	"method": "pmms.perception.msg",//固定
 	"info": {
 	    "deviceCode"='1000001',
 	    "deviceName"='动环1',
 	    "channelSeq"=4,
 	    "channelName"='GLkg_Dou_V1_2',
 	    "channelCode"='1000001$10$0$4',
 	    "signalCode"='18144001',
 	    "signalName"='A相刀闸状态',
 	    "measuredVal"='0.0',
 	    "measuredValName"='null',
 	    "setupVal"='0.000000',
 	    "signalUnit"='null'
 	    },
	"subsystem":"evo-pmms",//子系统名称
	"domainId":""
}

车载设备/MPT设备GPS感知消息示例

{
    "id": 1,
    "category": "perception",
    "method": "reportGPSInfo",
    "info": {
        "gcs": "WGS84", //地理坐标系统,默认:WGS84
        "deviceCode": "1000001", //设备编码
        "deviceName": "MDVR1",//设备名称
        "channelSeq": 0,//通道号(非必填,通道上报需要)
        "unitType": 1, //单元类型(非必填,通道上报需要)
        "unitSeq": 2,//单元号(非必填,通道上报需要)
        "channelName":"1通道",//通道名称(非必填,通道上报需要)
        "infoDate": "1547014708",//接收时间(已转换平台时间),单位秒
        "longitude": "30.221102",//经度:正为东经,负为西经
        "latidude": "120.176697",//纬度:正为北纬,负为南纬
        "height": "250",//高度:单位米
        "angle": "20",//方向角(正北方向顺时针为正),度
        "speed": "1",//速度(公里/小时)
        "stars": "1",//定位星数
        "antenna": "1",//天线状态(1- 好,0- 坏)
        "orientation": "1",//定位状态(1-定位,0-不定位)
        "extend":{}//扩展信息(1024字节)
    },
    "subsystem": "admin",
    "domainId": ""
}

取消事件订阅

接口说明

取消事件订阅接口,已保证不再接收推送消息,参数为json形式的对象(通用事件格式)。

接口配套版本信息

智能物联综合管理平台iConnection Center V5.0.6及以上版本

接口版本

1.0.0

接口URL

/evo-apigw/evo-event/1.0.0/subscribe/mqinfo?name=10.33.75.97_8918

请求Method

DELETE

数据提交格式

application/json

请求参数

参数名必选类型说明
nameString(0,50)订阅者名称

请求参数示例

https://124.160.33.135:4077/evo-apigw/evo-event/1.0.0/subscribe/mqinfo?name=10.33.75.97_8918
 

请求DEMO

参考demo方法【com.dahuatech.icc.demo.EventSubscribeTest.eventUnSubscribe】

       /**
        * 事件取消订阅示例
        *
        * @throws ClientException
        */
       @Test
       public void eventUnSubscribe() throws ClientException {
           log.info("----开始执行----{}------", "事件取消订阅");
           String subscribeName="10.33.75.97_8918";
           String host="10.35.239.149";
           IClient iClient = new DefaultClient(host, USER_NAME, PASSWORD, CLIENT_ID, CLIENT_SECRET);
           // 事件订阅按`name`字段取消
   
           EventSubscribeDelRequest subscribeRequest = new EventSubscribeDelRequest(subscribeName);
           EventSubscribeDelResponse subscribeResponse =
                   iClient.doAction(subscribeRequest, subscribeRequest.getResponseClass());
           log.info("----结束执行----{}------返回报文:{}", "事件取消订阅",JSONUtil.toJsonStr(subscribeResponse));
           // - ----结束执行----事件取消订阅------返回报文:{"result":"{\"success\":true,\"data\":{},\"code\":\"0\",\"errMsg\":\"\"}","code":"0","success":true,"errMsg":""}
       }
    

返回参数

名称类型说明
successboolean接口返回是否成功
codestring错误码:0为无错误,非0为具体错误码
errMsgstring错误消息
dataobject返回数据对象

返回参数示例(成功)

{
    "success": true,
    "data": {},
    "code": "0",
    "errMsg": ""
}
事件订阅列表查询

接口说明

事件订阅列表查询接口,查询某一类订阅消息的订阅者信息,参数为json形式的对象(通用事件格式)。

接口配套版本信息

智能物联综合管理平台iConnection Center V5.0.11及以上版本

接口版本

1.0.0

接口URL

/evo-apigw/evo-event/1.0.0/subscribe/subscribe-list?monitorType=url&category=alarm

请求Method

GET

数据提交格式

application/json

请求参数

参数名必选类型说明
monitorTypeString(0,16)监听类型 :固定url
categoryString(0,16)事件大类:business,state,alarm,perception,默认值alarm

请求参数示例

 https://124.160.33.135:4077/evo-apigw/evo-event/1.0.0/subscribe/subscribe-list?monitorType=url&category=state

请求DEMO

参考demo方法【com.dahuatech.icc.demo.EventSubscribeTest.eventSubscribeQuery】

         /**
          * 订阅事件记录查询示例
          *
          * @throws ClientException
          */
         @Test
         public void eventSubscribeQuery() throws ClientException {
     
     
             log.info("----开始执行----{}------", "订阅事件记录查询");
             String category="alarm";
             String host="10.35.239.143";
             IClient iClient = new DefaultClient(host, USER_NAME, PASSWORD, CLIENT_ID, CLIENT_SECRET);
     
             EventSubscribeQueryRequest subscribeRequest = new EventSubscribeQueryRequest(category);
             EventSubscribeQueryResponse subscribeResponse =
                     iClient.doAction(subscribeRequest, subscribeRequest.getResponseClass());
             log.info("----结束执行----{}------返回报文:{}", "订阅事件记录查询",JSONUtil.toJsonStr(subscribeResponse));
             // ----结束执行----订阅事件记录查询------返回报文:{"result":"{\"success\":true,\"data\":{\"subscribeMap\":{\"10.35.239.145_8922\":[{\"types\":null,\"nodeCodes\":null,\"orgs\":null,\"grades\":null,\"domainSubscribe\":2,\"scheme\":0,\"eventType\":0,\"monitor\":\"http://10.35.239.145:8922/evo-linkage/1.0.0/api/common-push\",\"monitorType\":\"url\"}]}},\"code\":\"0\",\"errMsg\":\"\"}","code":"0","success":true,"errMsg":""}
         }
    

返回参数

名称类型说明
successboolean接口返回是否成功
codestring错误码:0为无错误,非0为具体错误码
errMsgstring错误消息
dataobject返回数据对象
+subscribeMaparray订阅列表
++keystring服务名称
++valuearray服务订阅参数列表

返回参数示例(成功)

{
    "success": true,
    "data": {
        "subscribeMap": {
            "10.34.96.147_8010": [
                {
                    "types": null,
                    "nodeCodes": null,
                    "orgs": null,
                    "grades": null,
                    "domainSubscribe": 2,
                    "scheme": 0,
                    "eventType": 0,
                    "monitor": "http://10.35.239.144:8922/evo-linkage/1.0.0/api/common-push",
                    "monitorType": "url"
                }
            ],
            "10.35.239.145_8922": [
                {
                    "types": null,
                    "nodeCodes": null,
                    "orgs": null,
                    "grades": null,
                    "domainSubscribe": 2,
                    "scheme": 0,
                    "eventType": 0,
                    "monitor": "http://10.35.239.145:8922/evo-linkage/1.0.0/api/common-push",
                    "monitorType": "url"
                }
            ]
        }
    },
    "code": "0",
    "errMsg": ""
}