公安视图库1400的协议
一、平台注册/注销
1.1 注册/注销流程
注册流程1如图所示
图 1
下级平台主动向上级平台注册;注册鉴权信息(用户名和密码)由上级平台提供;
1.2 报文说明
1.2.1 下级第一次注册
POST /VIID/System/Register HTTP/1.1
Host: 192.168.1.240:10000
Accept: application/json,application/*+json
Content-Type: application/VIID+JSON;charset=UTF-8
Connection: keepalive
User-Identify:34020000001110000001
User-Agent: libghttp/1.0
Content-Length: 64
{
."RegisterObject":.{
.."DeviceID":."34020000001110000001"
.}
}
其中192.168.1.240:10000为注册平台的地址
1.2.2 上级响应未认证
HTTP/1.1 401 Unauthorized
Content-Type: application/json
WWW-Authenticate: Digest realm="firberhome", nonce="8qx43l7i"
1.2.3 下级第二次注册
POST /VIID/System/Register HTTP/1.1
Host: 192.168.1.240:10008
Accept: application/json,application/*+json
Content-Type: application/*+JSON;charset=UTF-8
Connection: keepalive
User-Identify:34020000001110000001
Authorization: Digest username="dbTest", realm="firberhome", nonce="8qx43l7i", uri="/VIID/System/Register", algorithm="MD5", cnonce="wenminchen@126.com", nc=00000001, qop=auth, response="48164a9699ccec9345016d62bc27384e"
User-Agent: libghttp/1.0
Content-Length: 64
{
."RegisterObject":.{
.."DeviceID":."34020000001110000001"
.}
}
1.2.4 注册成功上级响应
HTTP/1.1 200 OK
Content-Type: application/json
{"ResponseStatus":{"Id":"34020000001110000001","LocalTime":"20200512161231","RequestURL":"/VIID/System/Register","StatusCode":0,"StatusString":"OK"}}
以上为完整的注册流程,注销流程类似
二、Keepalived保活
2.1保活流程
下级向上级上报心跳数据
2.2 报文说明
2.2.1 下级上报保活
POST /VIID/System/Keepalive HTTP/1.1
Host: 192.168.1.240:10000
Accept: application/json,application/*+json
Content-Type: application/VIID+JSON;charset=UTF-8
Connection: keepalive
User-Identify:34020000001110000001
User-Agent: libghttp/1.0
Content-Length: 65
{
."KeepaliveObject":.{
.."DeviceID":."34020000001110000001"
.}
}
4.2.2 上级反馈响应
HTTP/1.1 200 OK
Content-Type: application/json
{"ResponseStatus":{"Id":"34020000001110000001","LocalTime":"20200512161231","RequestURL":"/VIID/System/Keepalive","StatusCode":0,"StatusString":"OK"}}
订阅-通知
上下级概念
订阅通知过程本质是数据转移,例如A想通过视图库获得B的机动车数据,那么A就是上级、B就是下级;假如A想通过B间接获得C的机动车数据,那么A就是B的上级,B是C的上级,这个过程为跨级订阅/通知。
tep1:订阅者(上级)向被订阅者(下级)发送HTTP POST请求/VIID/Subscribes。
Step2:被订阅者(下级)将订阅成功与否的响应消息返回给订阅者(上级)。
订阅成功后,被订阅者(下级)如果有订阅信息,便会进行通知任务。
Step3:被订阅者(下级)向订阅者(上级)发送HTTP POST请求/VIID/SubscribeNotifications。
Step4:订阅者(上级)返回响应消息。
Step5:被订阅者(下级)接收到Step4订阅者(上级)正确返回结果才会再重复Step3,4的操作,如此循环。
@AuthorizationInterceptor.UnAuthRequest@RequestMapping("/subscribes")public Result subscribe(// @RequestBody SubscribeReq subscribeReq) {log.info("订阅接口---------->");// 订阅统一标识码 = 公安机关机构代码 + 子类型编码(03-订阅)+ 时间编码(YYYYMMDDhhmmss) + 流水序号(00001)String time = DateTimeFormatter.ofPattern("yyyyMMddHHmmss").format(LocalDateTime.now());//123456789012String subscribeID = "360302000000" + "03" + time + "00001";String title = "订阅车牌识别消息";String subscribeDetail = "13"; // 订阅类别:视频卡口目录 7--视频卡口目录 12-人脸信息 13-车辆信息Integer ResourceClass=4;String resourceURI ="360xxxxxxx"; // 订阅资源路径 这个参数很重要 对方提供String applicantName = "xxxxx"; // 申请人String applicantOrg = "xxxxxx公司"; // 申请单位String beginTime ="20210326150000"; //DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());String endTime ="20210331230000"; //DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now().plusMinutes(5l));String receiveAddr = "http://36.36.1.70:1314/VIID/SubscribeNotifications";String ResultImageDeclare="01";String ResultFeatureDeclare="-1";Integer operateType = 0;SubscribeRequestObject subscribeRequestObject = new SubscribeRequestObject();SubscribeRequestObject.SubscribeListObject subscribeListObject = new SubscribeRequestObject.SubscribeListObject();subscribeRequestObject.setSubscribeListObject(subscribeListObject);List<SubscribeRequestObject.Subscribe> subscribeList = new ArrayList<>();SubscribeRequestObject.Subscribe subscribe = new SubscribeRequestObject.Subscribe();subscribe.setSubscribeID(subscribeID);subscribe.setTitle(title);subscribe.setSubscribeDetail(subscribeDetail);subscribe.setResourceURI("36030220195032160250");subscribe.setApplicantName(applicantName);subscribe.setApplicantOrg(applicantOrg);subscribe.setBeginTime(beginTime);subscribe.setEndTime(endTime);subscribe.setReceiveAddr(receiveAddr);subscribe.setOperateType(operateType);subscribeList.add(subscribe);subscribeListObject.setSubscribeObject(subscribeList);HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.parseMediaType("application/json;charset=utf-8"));headers.set("User-Identify","36030220195032160999");HttpEntity<String> httpEntity = new HttpEntity<>(JSONUtil.toJsonStr(subscribeRequestObject), headers);// log.info("消息体:{}", JSONUtil.toJsonStr(subscribeRequestObject));// 请求执行ResponseEntity<String> responseEntity = restTemplate.exchange(subscribeUrl, HttpMethod.POST, httpEntity, String.class);log.info("头部消息"+responseEntity.getHeaders());if (org.apache.http.HttpStatus.SC_OK == responseEntity.getStatusCode().value()) {log.info("响应体"+responseEntity.getBody());log.info(Result.success()+"订阅成功");return Result.success();}log.info(responseEntity.getBody());log.info(Result.failed()+"订阅失败");return Result.failed("订阅失败");}
公安视图库1400的协议相关推荐
- GA/T 1400视图库网关平台
将SVMSPro平台汇集的包含人脸(匹配度.年龄.性别).车辆(车牌号,车牌类型,车牌颜色,车辆品牌)等信息通过GA/T 1400协议推送至上层GA视图库平台(如海康.大华.华为等),GA/T 140 ...
- GA/T1400视图库协议-结构化数据对接
业务需求接入海康平台视图库结构化数据,搜索引擎一顿操作都是些简单的交互协议代码片段.经过东拼西凑实现了一个简易版的1400视图库协议项目实现需求,故记录下基本实现,末尾分享部分核心功能代码. 功能概要 ...
- DZ先生怪谈GAT1400之视图库协议保活
视图库保活 1400.4(5.1公共功能) 应支持注册,保活,注销,校时.注册失败时,应延迟300s内的随机时间后重新注册.注册成功后,在90s内未交互信息则进行心跳保活. 保活流程 保活消息表 说明 ...
- LiveVISGAT1400视图库服务-支持海康大华华为宇视天地伟业等设备视图库接入使用说明
LiveVISGAT1400视图库服务-支持海康大华华为宇视天地伟业等设备视图库接入使用说明 LiveVIS GAT1400视图库服务安装使用说明 1.服务说明 1.1.安装包说明 1.2.视图库服务 ...
- DZ先生怪谈GAT1400之视图库入门
自述 大家好,今天给大家讲的内容是视图库的入门,关注我的人都知道我写的第一篇文章主要内容是"人脸对象",人脸对象是视图库的细节之一,我之所以一开始没写入门知识主要是 ...
- GAT1400 视图库订阅
订阅-通知是视图库接口最核心的业务,也是大华,华为和友商使用最频繁的一个功能. 上下级概念 订阅通知过程本质是数据转移,例如A想通过视图库获得B的机动车数据,那么A就是上级.B就是下级:假如A想通过B ...
- 建筑CAD图库:CAD软件中多视图库的使用技巧
作为一名CAD制图初学入门者,当我们在使用正版CAD软件绘制建筑图纸的过程中,如果想要绘制轴测图该如何进行操作呢?这个时候就需要用到浩辰CAD建筑软件中建筑CAD图库之多视图库功能了,接下来的CAD制 ...
- 视图库——公安视频侦查数据处理应用中心
随着城市视频监控系统的不断完善和扩建,视频已经成为社会数据量最大的一类数据,网络甚至流传这样一个段子:电视台新闻行业应该给视频监控行业颁发"最佳素材奖",原因是电视台播放的新闻中, ...
- DZ先生怪谈1400之视图库校时
校时流程 校时消息表 说明: URI: /VIID/System/Time 功能: 保活 返回结果: <System Time> 1400.3 Page 108 <complex ...
最新文章
- 《一起学习rgbdSLAM》中g2o部分报错的问题
- 深入理解Android消息处理系统——Looper、Handler、Thread
- MATLAB实战系列(十二)-如何用人工鱼群算法解决带时间窗车辆路径(CVRP)问题(附MATLAB代码)
- 安卓平台下的音视频即时通讯应用的开发
- nssl1162-农夫约的假期【中位数,贪心】
- 【CSS 技能提升】 :before和:after的使用
- 哪种人是软件设计中的稀缺型人才?
- php的crypt,php使用crypt()函数进行加密
- Android开发中如何加载API源码帮助开发
- 3.凤凰架构:构建可靠的大型分布式系统 --- 事务处理
- Javaの网络数据传输之Socket
- linux __setup
- php通过js连接打印机直接打印PDF文件
- 手游服务器账号,手游服务器登录流程
- 百度绿萝算法对网站排名有哪些影响
- IR PC IP 之义
- 从新生儿性别比例数据,看各地重男轻女程度高低
- 春秋战国开局名臣搭配推荐
- 目前住院病人主要由护士护理这样做不仅需要大量护士而且由子不能随时观察危重病人的病情变化还可能会延误抢救时机.某医院打算开发-个以计算机为中心的患者监护系统试写出问题定义并且分析开发这个系统的可行性.
- 51单片机和Arduino有什么区别?
热门文章
- 安天发布措施紧急应对新型勒索软件“wannacry”
- 前端HTML--个人社保计算器
- Jetson TX1/Tx2刷机补充版
- 深入理解Linux内核---内存管理zone
- 软件工程教程:第9章面向对象分析 课后习题
- 探索未来|一文看懂小米年度技术峰会 · 人工智能技术专场
- windows中搭建当当网
- Crust “方舟计划”激励测试网一触即发,我们准备好了!
- 折叠始祖摩托罗拉,困于“性价比”折叠屏
- 如何在 Kylin 中优雅地使用 Spark