小秦哥 发表于 2024-8-9 21:32:19

视频监控平台:事件订阅后,事件通知推送的快速验证方法,在事件通知目的服

目次
一、事件订阅和事件通知
1、事件订阅
(1)定义
(2)作用
2、事件通知
3、关系
(1)相互依赖
(2)协同工作
(3)及时性和同步性
二、问题
1、问题描述
2、问题分析
三、解决方案
1、API接口
(1)报警订阅
(2)事件通知
2、思绪
(1)模拟上级应用程序调用接口,订阅事件
(2)模拟事件处置处罚服务器接收事件通知
3、预备工作
(1)体系和工具
(2)postman脚本
四、现实操纵说明
1、报警订阅
2、事件通知推送过程和说明
(1)没有事件服务器启动的环境推送
(2)模拟侦听端口,接收事件通知
(3) 发送报警通知
(4)事件接收服务器返回消息


一、事件订阅和事件通知

        国标GB28181协议定义了事件订阅流程和事件通知流程,这两个流程是相互关联、且相辅相成的流程,它们共同构成了事件处置处罚和通讯的完整机制。
        有爱好的可以看我前面写的文章:
                《国标GB/T 28181详解:事件订阅流程详解》
                《国标GB/T 28181详解:事件通知流程详细解释》
1、事件订阅

(1)定义

        事件订阅是指联网体系、SIP服务器、客户端等事件观察者,通过SIP协议(具体为RFC3265中定义的SUBSCRIBE方法),向可以或许触发事件的体系或设备(如联网体系、SIP服务器、报警设备、移动设备以及被集成的卡口体系等事件源)发起订阅请求,以接收特定事件的通知。
(2)作用

        事件订阅机制有助于保持上下级域之间的目次结构和设备状态的一致性。当设备状态发生变化时,通过事件订阅,上级体系可以或许及时接收到这些变化通知,从而保持整个体系的状态同步。
2、事件通知

        事件通知是指当事件源担当到事件订阅后,在事件触发后应立刻通知事件观察者,事件观察者应向事件源发送事件收到的确认消息。
3、关系

(1)相互依赖

        事件订阅是事件通知的前提和基础。只有事件观察者乐成订阅了特定事件,才能在事件触发时接收到事件通知。
(2)协同工作

        事件订阅和事件通知协同工作,共同实现事件处置处罚和通讯的完整机制。通过事件订阅,事件观察者可以获取所需的事件信息;通过事件通知,事件源可以将事件信息及时、正确地发送给事件观察者。
(3)及时性和同步性

        事件订阅流程和事件通知流程保证了体系的及时性和同步性。通过这两个流程,体系可以及时地检测到设备状态的变化和事件的发生,并及时地通知相关体系或设备进行处置处罚和相应。

二、问题

1、问题描述

        视频监控平台可以或许实现报警事件的通知和推送,同时也提供了对应的API接口,可以为上层应用程序调用。
        在项目现场,第三方上层应用的技能人员说我们提供的API接口有问题,他们在调用时间订阅时间乐成,但是事件通知似乎有问题,没有收到我们的任何事件通知消息。颠末我们技能人员反复说明,对方一直不理解。
2、问题分析

        颠末我们开会诊断,以为肯定是对方担当通知的接口有问题,但是解释现在已经没有效,我们需要给对方现实的测试,来验证我们的API接口的正确性。也就是要在事件通知目的服务器没有的环境下,快速验证事件通知的推送是有效的。
三、解决方案

1、API接口

(1)报警订阅

        请求方式:POST
        请求所在:http://192.168.0.156:8687/ivms/sipsvr/alarmsubscribe
        请求参数:
           {
        "AuthorizationId":"xxxx",
        "PushInterval":1000,
        "NumEachPage":100,
        "SendAddress":"http://192.168.12.53:8888/alarmnotify"
        }
        返回参数:
           {
        "errcode":0,
        "errdesc":"OK",
        "PushInterval":1000,
        "NumEachPage":100,
        "SendAddress":"http://192.168.12.53:8888/alarmnotify"
        }

(2)事件通知

        按订阅给的所在推送。
                   URL:http://ip:port/{path}
                HTTP Method:       POST
        上下线事件推送:
        Body
        {
                "sn":"123453213",    //序列号,唯一
                "msgtype":"msg_vedio_event"
                "TotalAlarmCount":1
                "AlarmListCount":1,
                "AlarmList":
        [
        {

                "AlarmId":"186ef967-7a9d-44be-8ca4-90bef8fd9024",
                "DeviceId":"64000000001320012179",
                "AlarmPriority":1,
                "AlarmMethod":2,
                "AlarmTime":"2019-01-24T15:17:30",
                "AlarmDescription":"设备上线",
                "Longitude":116.666666,
                "Latitude":66.666666,
                "ExtendInfo":5,
                "EventId":-1
        }
        ]
        } 2、思绪

(1)模拟上级应用程序调用接口,订阅事件

这种环境下,可以采用postman工具,postman工具可以非常方便的调用http格式的API接口。
(2)模拟事件处置处罚服务器接收事件通知

要测试平台相关报警API接口能否正常使用,可以使用postman进行测试,

3、预备工作

(1)体系和工具

需要预备如下体系和工具:
           服务器1台:AS-V1000视频监控平台。
        电脑1台:安装windows体系,安装postman工具
        主机1台:可以是windows大概linux,安装netcat工具
(2)postman脚本

          需要预备如下代码:
                  按照AS-V1000视频监控平台的http API接口,编写登录语句、事件订阅语句
               预备好Netcat工具的命令语句,可以侦听端口,接收事件通知消息
四、现实操纵说明

1、报警订阅

        根据API接口文档,进行报警订阅,现实操纵如下图:
https://img-blog.csdnimg.cn/direct/9a2b81ee4b914add918712250bd61ead.jpeg
        实验后,返回乐成,如下图示:
https://img-blog.csdnimg.cn/direct/42c2b0c0c15e447793b558a6481a80fe.jpeg
        注意,这里设置了事件通知的目的所在,即接收报警的服务器所在,所在为:
        http://192.168.1.109:8007/alarmnotify

2、事件通知推送过程和说明

(1)没有事件服务器启动的环境推送

向订阅所在发送“上下线事件”推送,现实操纵如下图:
https://img-blog.csdnimg.cn/direct/9e487d42012a4c61978a71b41926e5f7.jpeg

        但由于这个端口暂时没有设备监听,所以返回错误,即connect refused,如下图:
https://img-blog.csdnimg.cn/direct/a5feb0fa6e8e4c53bbd1eabd064fe7b3.jpeg

(2)模拟侦听端口,接收事件通知

在命令行采用netcat命令(简写为nc),模拟设备监听、接收事件通知。
在主机192.168.1.109上使用使用如下命令:
            nc -l 8007 -v
       现实操纵后,显示如下图界面:
https://img-blog.csdnimg.cn/direct/4e7b8e7919304ea3b381a9f5ae83fbcb.png
       说明创建8007侦听端口乐成。
     PS:若对nc命令有爱好,详情可以参考我之前的文章:
            《Linux网络命令:网络工具netcat详解》
(3) 发送报警通知

用postman发送post信息,在主机109上可以看到如下图所示:
https://img-blog.csdnimg.cn/direct/3aa112f7b42d4623ab32fd9de310b17a.jpeg
        可以看到乐成收到信息。
(4)事件接收服务器返回消息

       在netcat命令行下,输入“receive ok”消息,然后回车发送,如下图所示:
https://img-blog.csdnimg.cn/direct/0ab419eb40ad41aa8708fd2d22cfaf80.jpeg

在postman上,出现如下图示:
https://img-blog.csdnimg.cn/direct/492ebf4e31a24a3d8f2052c2513d9cee.jpeg
        由于简单的netcat不是正常可以接收的设备,我们这里只是模拟监听,可以接收http的消息,但是不能发送符合http API接口的格式。因此,当我们随手输入字符 作为返回信息时,接口会提示接收到了错误的信息,但这也说明事件通知服务到设备的通讯是没有问题的。
        问题得到解决。说明我们视频监控平台的API接口的正确性,报警事件通知的推送是有效的。
文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信手刺”字样,就会出现我的二维码,欢迎沟通探究。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 视频监控平台:事件订阅后,事件通知推送的快速验证方法,在事件通知目的服