本发明涉及视频监控技术领域,特别是涉及一种消息推送方法、控制装置、监控设备、系统及存储介质。
背景技术:
目前,随着视频监控领域的发展,监控摄像头等监控设备应用越来越广泛,同时监控摄像头的后端服务器也越来越多。当监控设备发现如移动侦测、人形检测等侦测事件时,不同的后端服务器都希望收到告警消息,其中,后端服务器包括私有云服务器、公有云服务器、局域网服务器等。针对这样的应用场景,监控设备如何处理多服务器消息推送问题,将是一个重要挑战,而在现有技术中,监控设备向多个服务器推送消息的效果不好。
技术实现要素:
本发明实施例的目的是提供一种消息推送方法、控制装置、监控设备、系统及存储介质,其能够将在检测到侦测事件时推送消息至不同的服务器。
为了解决上述技术问题,本发明实施例提供一种消息推送方法,包括:
当检测到侦测事件时,读取消息推送配置;
当所述消息推送配置为开启时,根据所述侦测事件组装消息报文;
对于当前连接的每一接收服务器,在判断当前时刻处于所述接收服务器的布防时间时,根据所述接收服务器的信息,进一步组装所述消息报文,并将进一步组装后的所述消息报文放入不同的消息队列;其中,所述接收服务器的信息包括所述接收服务器的地址;
将所有所述消息队列中进一步组装后的所述消息报文推送至对应的所述接收服务器。
作为优选方案,所述将所有所述消息队列中进一步组装后的所述消息报文推送至对应的所述接收服务器,具体包括:
按照预先配置的优先级推送顺序,通过预先创建的消息推送线程将所有所述消息队列中进一步组装后的所述消息报文逐一推送至对应的所述接收服务器。
作为优选方案,所述按照预先配置的优先级推送顺序,通过预先创建的消息推送线程将所有所述消息队列中进一步组装后的所述消息报文逐一发送至对应的所述接收服务器,具体包括:
按照预先配置的优先级推送顺序,确定下一个待推送消息的接收服务器;
判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长是否大于等于所述接收服务器的预设间隔时长;
在当前时刻与所述接收服务器上一次推送消息时刻的间隔时长小于所述接收服务器的预设间隔时长时,重复执行所述判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长是否大于等于所述接收服务器的预设间隔时长的步骤,直至判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长大于等于所述接收服务器的预设间隔时长为止;
在当前时刻与所述接收服务器上一次推送消息时刻的间隔时长大于等于所述接收服务器的预设间隔时长时,通过预先创建的消息推送线程将与所述接收服务器对应的所述消息队列中进一步组装后的所述消息报文推送至所述接收服务器,并重新确定下一个待推送消息的接收服务器,直至所有所述消息队列中进一步组装后的所述消息报文全部发送至对应的所述接收服务器为止。
为了解决相同的技术问题,本发明实施例还提供一种控制装置,包括:
消息推送配置读取模块,用于当检测到侦测事件时,读取消息推送配置;
第一消息报文组装模块,用于当所述消息推送配置为开启时,根据所述侦测事件组装消息报文;
第二消息报文组装模块,用于对于当前连接的每一接收服务器,在判断当前时刻处于所述接收服务器的布防时间时,根据所述接收服务器的信息,进一步组装所述消息报文,并将进一步组装后的所述消息报文放入不同的消息队列;其中,所述接收服务器的信息包括所述接收服务器的地址;
消息报文推送模块,用于将所有所述消息队列中进一步组装后的所述消息报文推送至对应的所述接收服务器。
作为优选方案,所述消息报文推送模块具体用于按照预先配置的优先级推送顺序,通过预先创建的消息推送线程将所有所述消息队列中进一步组装后的所述消息报文逐一推送至对应的所述接收服务器。
作为优选方案,所述消息报文推送模块具体包括:
服务器确定单元,用于按照预先配置的优先级推送顺序,确定下一个待推送消息的接收服务器;
间隔时长判断单元,用于判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长是否大于等于所述接收服务器的预设间隔时长;
重复判断单元,用于在当前时刻与所述接收服务器上一次推送消息时刻的间隔时长小于所述接收服务器的预设间隔时长时,重复执行所述判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长是否大于等于所述接收服务器的预设间隔时长的步骤,直至判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长大于等于所述接收服务器的预设间隔时长为止;
消息报文推送单元,用于在当前时刻与所述接收服务器上一次推送消息时刻的间隔时长大于等于所述接收服务器的预设间隔时长时,通过预先创建的消息推送线程将与所述接收服务器对应的所述消息队列中进一步组装后的所述消息报文推送至所述接收服务器,并重新确定下一个待推送消息的接收服务器,直至所有所述消息队列中进一步组装后的所述消息报文全部发送至对应的所述接收服务器为止。
为了解决相同的技术问题,本发明实施例还提供一种监控设备,包括所述的控制装置。
为了解决相同的技术问题,本发明实施例还提供一种监控系统,包括所述的监控设备以及至少两台接收服务器。
为了解决相同的技术问题,本发明实施例还提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行所述的消息推送方法。
实施本发明实施例,具有如下有益效果:
本发明实施例提供一种消息推送方法、控制装置、监控设备、系统及存储介质,当检测到侦测事件时,读取消息推送配置,当消息推送配置为开启时,则根据侦测事件组装消息报文,对于当前连接的每一接收服务器,在判断当前时刻处于接收服务器的布防时间时,根据接收服务器的信息,进一步组装消息报文并放入不同的消息队列,并将所有消息队列中进一步组装后的消息报文推送至对应的接收服务器,从而将检测到的同一个侦测事件组装成消息并推送至不同的服务器。
附图说明
图1是本发明提供的消息推送方法的一个实施例的流程图;
图2是本发明提供的监控设备的一个实施例的工作流程图;
图3是本发明提供的控制装置的一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1所示,其是本发明提供的消息推送方法的一个实施例的流程图。
本发明优选实施例的一种消息推送方法包括:
步骤s101,当检测到侦测事件时,读取消息推送配置;
步骤s102,当所述消息推送配置为开启时,根据所述侦测事件组装消息报文;
步骤s103,对于当前连接的每一接收服务器,在判断当前时刻处于所述接收服务器的布防时间时,根据所述接收服务器的信息,进一步组装所述消息报文,并将进一步组装后的所述消息报文放入不同的消息队列;其中,所述接收服务器的信息包括所述接收服务器的地址;
步骤s104,将所有所述消息队列中进一步组装后的所述消息报文推送至对应的所述接收服务器。
在本发明实施例中,当检测到侦测事件时,读取消息推送配置,当消息推送配置为开启时,则根据侦测事件组装消息报文,对于当前连接的每一接收服务器,在判断当前时刻处于接收服务器的布防时间时,根据接收服务器的信息,进一步组装消息报文并放入不同的消息队列,并将所有消息队列中进一步组装后的消息报文推送至对应的接收服务器,从而将检测到的同一个侦测事件组装成消息并推送至不同的服务器。
需要说明的是,所述消息推送方法可应用于多种设备,下文以监控设备为例进行说明,比如监控摄像头(ipc)等。所述接收服务器是指接收所述监控设备推送的消息报文的服务器,比如可以是基础云服务器、gb28181服务器等。所述侦测事件是指所述监控设备检测到的事件,比如可以是移动侦测、人形检测等,可根据实际要求进行设置。而所述接收服务器的布防时间是指接收服务器接收监控设备推送消息的时间段。举例而言,用户可以通过具体接收服务器的前端app等设置监控设备上触发侦测事件的时间段,比如设置每天6:00-18:00发生侦测事件就进行推送,而其他时间内即使发生侦测,也不进行推送。因此,不同的接收服务器可以设置相同或不同的布防时间,各个接收服务器相互独立,互不影响。
在所述步骤s102“当消息推送配置为开启时,根据所述侦测事件组装消息报文”中,所述消息推送配置可以预先设定,也可以后续调整,当消息推送配置为关闭时,则不进行消息报文的组装。另外,所述根据所述侦测事件组装后的消息报文,具体可以包括消息类型、时间戳、监控设备id等消息,若是带图片的,还可以包括图片id等,具体可以根据实际使用要求进行设置,在此不做更多的赘述。
在一种可选的实施方式中,所述步骤s104“将所有所述消息队列中进一步组装后的所述消息报文推送至对应的所述接收服务器”,具体包括:
按照预先配置的优先级推送顺序,通过预先创建的消息推送线程将所有所述消息队列中进一步组装后的所述消息报文逐一推送至对应的所述接收服务器。
在本发明实施例中,所述优先级推送顺序是指将消息队列的消息报文推送至对应的接收服务器的顺序。在具体实施当中,按照优先级来确定各个消息队列的推送顺序,从而依次发送消息队列中的消息报文。比如,当优先级推送顺序为服务器a/b/c时,则先推送与服务器a对应的消息队列中的消息报文,再推送与服务器b对应的消息队列中的消息报文,最后推送与服务器c对应的消息队列中的消息报文,从而将所有消息报文依次发送至对应的接收服务器,假如服务器b现在未连接或者未处于布防时间,那么实际推送顺序就变成服务器a/c。
优选地,所述按照预先配置的优先级推送顺序,通过预先创建的消息推送线程将所有所述消息队列中进一步组装后的所述消息报文逐一发送至对应的所述接收服务器,具体包括:
按照预先配置的优先级推送顺序,确定下一个待推送消息的接收服务器;
判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长是否大于等于所述接收服务器的预设间隔时长;
在当前时刻与所述接收服务器上一次推送消息时刻的间隔时长小于所述接收服务器的预设间隔时长时,重复执行所述判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长是否大于等于所述接收服务器的预设间隔时长的步骤,直至判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长大于等于所述接收服务器的预设间隔时长为止;
在当前时刻与所述接收服务器上一次推送消息时刻的间隔时长大于等于所述接收服务器的预设间隔时长时,通过预先创建的消息推送线程将与所述接收服务器对应的所述消息队列中进一步组装后的所述消息报文推送至所述接收服务器,并重新确定下一个待推送消息的接收服务器,直至所有所述消息队列中进一步组装后的所述消息报文全部发送至对应的所述接收服务器为止。
在本发明实施例中,所述接收服务器的预设间隔时长可以根据实际使用要求进行设置,具体可以是通过定时器来实现不同接收服务器对于消息的间隔的要求,每一个定时器对应一个接收服务器。假设持续发生移动侦测事件,可以设计为每分钟推送一次消息,而不是没有间隔地推送。
请参阅图2所示,在具体应用中,可以在监控系统启动时,先初始化消息推送服务器信息,同时创建消息推送线程和消息推送定时器,其中,该消息推送服务器信息主要指监控设备的事件消息,比如移动侦测、人形检测等等;当消息推送线程中初始化的消息队列为空,则等待消息入队;当监控设备检测到侦测事件发生时,读取消息推送配置、触发定时器并组装消息报文,然后根据当前接收服务器的连接状态与接收服务器的布防时间,进一步组装带接收服务器信息的消息报文,并将进一步组装的消息报文分别放入到不同消息队列,再通过消息推送线程将消息报文发送至对应的接收服务器,当不同接收服务器的消息队列将消息推送完毕后,则等待下一个消息的到来,循环进行推送。
相应地,请参阅图3所示,其本发明提供的控制装置的一个实施例的结构示意图。
本发明实施例还提供一种控制装置,包括:
消息推送配置读取模块10,用于当检测到侦测事件时,读取消息推送配置;
第一消息报文组装模块20,用于当所述消息推送配置为开启时,根据所述侦测事件组装消息报文;
第二消息报文组装模块30,用于对于当前连接的每一接收服务器,在判断当前时刻处于所述接收服务器的布防时间时,根据所述接收服务器的信息,进一步组装所述消息报文,并将进一步组装后的所述消息报文放入不同的消息队列;其中,所述接收服务器的信息包括所述接收服务器的地址;
消息报文推送模块40,用于将所有所述消息队列中进一步组装后的所述消息报文推送至对应的所述接收服务器。
在一种可选的实施方式中,所述消息报文推送模块40具体用于按照预先配置的优先级推送顺序,通过预先创建的消息推送线程将所有所述消息队列中进一步组装后的所述消息报文逐一推送至对应的所述接收服务器。
优选地,所述消息报文推送模块40具体包括:
服务器确定单元,用于按照预先配置的优先级推送顺序,确定下一个待推送消息的接收服务器;
间隔时长判断单元,用于判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长是否大于等于所述接收服务器的预设间隔时长;
重复判断单元,用于在当前时刻与所述接收服务器上一次推送消息时刻的间隔时长小于所述接收服务器的预设间隔时长时,重复执行所述判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长是否大于等于所述接收服务器的预设间隔时长的步骤,直至判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长大于等于所述接收服务器的预设间隔时长为止;
消息报文推送单元,用于在当前时刻与所述接收服务器上一次推送消息时刻的间隔时长大于等于所述接收服务器的预设间隔时长时,通过预先创建的消息推送线程将与所述接收服务器对应的所述消息队列中进一步组装后的所述消息报文推送至所述接收服务器,并重新确定下一个待推送消息的接收服务器,直至所有所述消息队列中进一步组装后的所述消息报文全部发送至对应的所述接收服务器为止。
需要说明的是,本发明实施例提供的一种控制装置用于执行上述实施例的一种消息推送方法的所有流程步骤,两者的工作原理和有益效果一一对应,因而不再赘述。
相应地,本发明实施例还提供一种监控设备,包括所述的控制装置。
相应地,本发明实施例还提供一种监控系统,包括所述的监控设备以及至少两台接收服务器。
相应地,本发明实施例还提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行所述的消息推送方法。
其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。
综上,本发明实施例提供一种消息推送方法、控制装置、监控设备、系统及存储介质,当检测到侦测事件时,读取消息推送配置,当消息推送配置为开启时,则根据侦测事件组装消息报文,对于当前连接的每一接收服务器,在判断当前时刻处于接收服务器的布防时间时,根据接收服务器的信息,进一步组装消息报文并放入不同的消息队列,并将所有消息队列中进一步组装后的消息报文推送至对应的接收服务器,从而将检测到的同一个侦测事件组装成消息并推送至不同的服务器。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
1.一种消息推送方法,其特征在于,包括:
当检测到侦测事件时,读取消息推送配置;
当所述消息推送配置为开启时,根据所述侦测事件组装消息报文;
对于当前连接的每一接收服务器,在判断当前时刻处于所述接收服务器的布防时间时,根据所述接收服务器的信息,进一步组装所述消息报文,并将进一步组装后的所述消息报文放入不同的消息队列;其中,所述接收服务器的信息包括所述接收服务器的地址;
将所有所述消息队列中进一步组装后的所述消息报文推送至对应的所述接收服务器。
2.如权利要求1所述的消息推送方法,其特征在于,所述将所有所述消息队列中进一步组装后的所述消息报文推送至对应的所述接收服务器,具体包括:
按照预先配置的优先级推送顺序,通过预先创建的消息推送线程将所有所述消息队列中进一步组装后的所述消息报文逐一推送至对应的所述接收服务器。
3.如权利要求2所述的消息推送方法,其特征在于,所述按照预先配置的优先级推送顺序,通过预先创建的消息推送线程将所有所述消息队列中进一步组装后的所述消息报文逐一发送至对应的所述接收服务器,具体包括:
按照预先配置的优先级推送顺序,确定下一个待推送消息的接收服务器;
判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长是否大于等于所述接收服务器的预设间隔时长;
在当前时刻与所述接收服务器上一次推送消息时刻的间隔时长小于所述接收服务器的预设间隔时长时,重复执行所述判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长是否大于等于所述接收服务器的预设间隔时长的步骤,直至判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长大于等于所述接收服务器的预设间隔时长为止;
在当前时刻与所述接收服务器上一次推送消息时刻的间隔时长大于等于所述接收服务器的预设间隔时长时,通过预先创建的消息推送线程将与所述接收服务器对应的所述消息队列中进一步组装后的所述消息报文推送至所述接收服务器,并重新确定下一个待推送消息的接收服务器,直至所有所述消息队列中进一步组装后的所述消息报文全部发送至对应的所述接收服务器为止。
4.一种控制装置,其特征在于,包括:
消息推送配置读取模块,用于当检测到侦测事件时,读取消息推送配置;
第一消息报文组装模块,用于当所述消息推送配置为开启时,根据所述侦测事件组装消息报文;
第二消息报文组装模块,用于对于当前连接的每一接收服务器,在判断当前时刻处于所述接收服务器的布防时间时,根据所述接收服务器的信息,进一步组装所述消息报文,并将进一步组装后的所述消息报文放入不同的消息队列;其中,所述接收服务器的信息包括所述接收服务器的地址;
消息报文推送模块,用于将所有所述消息队列中进一步组装后的所述消息报文推送至对应的所述接收服务器。
5.如权利要求4所述的控制装置,其特征在于,所述消息报文推送模块具体用于按照预先配置的优先级推送顺序,通过预先创建的消息推送线程将所有所述消息队列中进一步组装后的所述消息报文逐一推送至对应的所述接收服务器。
6.如权利要求5所述的控制装置,其特征在于,所述消息报文推送模块具体包括:
服务器确定单元,用于按照预先配置的优先级推送顺序,确定下一个待推送消息的接收服务器;
间隔时长判断单元,用于判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长是否大于等于所述接收服务器的预设间隔时长;
重复判断单元,用于在当前时刻与所述接收服务器上一次推送消息时刻的间隔时长小于所述接收服务器的预设间隔时长时,重复执行所述判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长是否大于等于所述接收服务器的预设间隔时长的步骤,直至判断当前时刻与所述接收服务器上一次推送消息时刻的间隔时长大于等于所述接收服务器的预设间隔时长为止;
消息报文推送单元,用于在当前时刻与所述接收服务器上一次推送消息时刻的间隔时长大于等于所述接收服务器的预设间隔时长时,通过预先创建的消息推送线程将与所述接收服务器对应的所述消息队列中进一步组装后的所述消息报文推送至所述接收服务器,并重新确定下一个待推送消息的接收服务器,直至所有所述消息队列中进一步组装后的所述消息报文全部发送至对应的所述接收服务器为止。
7.一种监控设备,其特征在于,包括如权利要求4-6任一项所述的控制装置。
8.一种监控系统,其特征在于,包括如权利要求7所述的监控设备以及至少两台接收服务器。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至3中任意一项所述的消息推送方法。
技术总结