CN111427850A - 一种显示报警文件的方法、装置及*** - Google Patents

一种显示报警文件的方法、装置及*** Download PDF

Info

Publication number
CN111427850A
CN111427850A CN201911077085.2A CN201911077085A CN111427850A CN 111427850 A CN111427850 A CN 111427850A CN 201911077085 A CN201911077085 A CN 201911077085A CN 111427850 A CN111427850 A CN 111427850A
Authority
CN
China
Prior art keywords
file
alarm
data
alarm file
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911077085.2A
Other languages
English (en)
Inventor
薛行明
王志海
唐朱震
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201911077085.2A priority Critical patent/CN111427850A/zh
Publication of CN111427850A publication Critical patent/CN111427850A/zh
Priority to EP20885783.9A priority patent/EP4044513A4/en
Priority to PCT/CN2020/125955 priority patent/WO2021088773A1/zh
Priority to US17/772,811 priority patent/US20220414178A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/045Network management architectures or arrangements comprising client-server management architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请是关于一种显示报警文件的方法、装置及***,属于通信领域。所述方法包括:通过与服务端之间的长连接接收所述服务端发送的报警文件对应的数据包,其中所述服务端发送所述报警文件后释放所述报警文件占用的存储资源;对所述报警文件对应的数据包解析得到所述报警文件;生成所述报警文件的统一资源定位符URL;根据所述报警文件的URL显示所述报警文件。本申请能够减小浪费服务端的存储资源。

Description

一种显示报警文件的方法、装置及***
技术领域
本申请涉及通信领域,特别涉及一种显示报警文件的方法、装置及***。
背景技术
在安防行业中可以使用浏览器从服务端中请求报警图片,通过浏览器对报警图片进行显示。报警图片是一种报警文件,服务端在获取到报警图片后先保存该报警图片,以供浏览器请求。
目前浏览器可以采用轮询的方式从服务端请求报警图片,即浏览器每间隔一段时间向服务端发送请求消息,服务端接收该请求消息,如果在当前已保存报警图片,向浏览器发送该报警图片的统一资源定位符URL,浏览器通过该报警图片的URL获取到图片的原始数据并解析成正常像素显示的报警图片;如果未保存报警图片,则通知浏览器。
发明人在实现本申请的过程中,发现上述方式至少存在如下缺陷:
浏览器采用轮询的方式从服务端请求报警文件来实现对报警文件的显示时,服务端需向浏览器发送报警文件在服务端上可访问的URL以供浏览器根据URL显示报警文件,因此服务端需要保存报警文件,对服务端的存储资源浪费很大。
发明内容
本申请实施例提供了一种显示报警文件的方法、装置、***、电子设备、计算机可读存储介质及计算机程序产品,以减小浪费服务端的存储资源。所述技术方案如下:
一方面,本申请提供了一种显示报警文件的方法,所述方法包括:
通过与服务端之间的长连接接收所述服务端发送的报警文件对应的数据包,其中所述服务端发送所述报警文件后释放所述报警文件占用的存储资源;
对所述报警文件对应的数据包解析得到所述报警文件;
生成所述报警文件的统一资源定位符URL;
根据所述报警文件的URL显示所述报警文件。
可选的,所述报警文件对应M个数据包,M为大于或等于1的整数,所述对所述报警文件对应的数据包解析得到所述报警文件,包括:
针对所述M个数据包中的每个数据包,从所述数据包的包头中读取校验字符串;
在所述校验字符串为预设校验字符串的情况下,从所述包头中读取包头长度;
根据所述包头长度,从所述包头中读取所述报警文件的文件长度、所述报警文件的文件标识和所述数据包的包序号;
在所述文件标识对应的数组中,将所述数据包的净荷部分保存在所述包序号对应的存储空间中;
在所述数组中保存的属于所述报警文件的数据长度等于所述文件长度时,将所述数组保存的属于所述报警文件的数据为所述报警文件。
可选的,所述数据包的包头还包括所述数据包的净荷长度,
所述在所述文件标识对应的数组中,将所述数据包的净荷部分保存在所述包序号对应的存储空间中,包括:
根据所述文件标识,确定所述数据包是否是接收的第一个属于所述报警文件的数据包;
如果是第一个,则创建所述文件标识对应的数组,在所述数组中将所述数据包的净荷部分保存到所述包序号对应的存储空间中,在所述数组中保存属于所述报警文件的数据长度,所述数据长度等于所述数据包的净荷长度;
如果不是第一个,则确定所述文件标识对应的数组,在所述数组中将所述数据包的净荷部分保存到所述包序号对应的存储空间中,将所述数组中保存的属于所述报警文件的数据长度和所述数据包的净荷长度进行累加,得到累加值,将所述数组中保存的所述数据长度替换为所述累加值。
可选的,所述解析得到的报警文件保存在内存中,所述生成所述报警文件的统一资源定位符URL,包括:
根据内存中保存的所述报警文件,通过用于生成统一资源定位符URL的应用程序接口API,生成所述报警文件的URL。
可选的,所述通过与服务端之间的长连接接收所述服务端发送的报警文件对应的数据包之前,还包括:
通过所述长连接向服务端发送订阅请求消息,所述订阅请求消息包括内容类型;
通过所述长连接接收所述报警文件对应的报警信息,所述报警文件的内容属于所述内容类型。
另一方面,本申请提供了一种显示报警文件的装置,所述装置包括:
接收模块,用于通过与服务端之间的长连接接收所述服务端发送的报警文件对应的数据包,其中所述服务端发送所述报警文件后释放所述报警文件占用的存储资源;
解析模块,用于对所述报警文件对应的数据包解析得到所述报警文件;
生成模块,用于生成所述报警文件的统一资源定位符URL;
显示模块,用于根据所述报警文件的URL显示所述报警文件。
可选的,所述报警文件对应M个数据包,M为大于或等于1的整数,所述解析模块,用于:
针对所述M个数据包中的每个数据包,从所述数据包的包头中读取校验字符串;
在所述校验字符串为预设校验字符串的情况下,从所述包头中读取包头长度;
根据所述包头长度,从所述包头中读取所述报警文件的文件长度、所述报警文件的文件标识和所述数据包的包序号;
在所述文件标识对应的数组中,将所述数据包的净荷部分保存在所述包序号对应的存储空间中;
在所述数组中保存的属于所述报警文件的数据长度等于所述文件长度时,将所述数组保存的属于所述报警文件的数据为所述报警文件。
可选的,所述数据包的包头还包括所述数据包的净荷长度,
所述解析模块,用于:
根据所述文件标识,确定所述数据包是否是接收的第一个属于所述报警文件的数据包;
如果是第一个,则创建所述文件标识对应的数组,在所述数组中将所述数据包的净荷部分保存到所述包序号对应的存储空间中,在所述数组中保存属于所述报警文件的数据长度,所述数据长度等于所述数据包的净荷长度;
如果不是第一个,则确定所述文件标识对应的数组,在所述数组中将所述数据包的净荷部分保存到所述包序号对应的存储空间中,将所述数组中保存的属于所述报警文件的数据长度和所述数据包的净荷长度进行累加,得到累加值,将所述数组中保存的所述数据长度替换为所述累加值。
可选的,所述解析得到的报警文件保存在内存中,所述生成模块,用于:
根据内存中保存的所述报警文件,通过用于生成统一资源定位符URL的应用程序接口API,生成所述报警文件的URL。
可选的,所述装置还包括:发送模块,
所述发送模块,用于通过所述长连接向服务端发送订阅请求消息,所述订阅请求消息包括内容类型;
所述接收模块,还用于通过所述长连接接收所述报警文件对应的报警信息,所述报警文件的内容属于所述内容类型。
另一方面,本申请提供了一种显示报警文件的***,所述***包括:客户端和服务端;
所述服务端,用于通过与所述客户端之间的长连接向所述客户端发送报警文件对应的数据包,释放所述报警文件占用的存储资源;
所述客户端,用于通过与所述服务端之间的长连接接收所述报警文件对应的数据包;对所述报警文件对应的数据包解析得到所述报警文件;生成所述报警文件的统一资源定位符URL;根据所述报警文件的URL显示所述报警文件。
可选的,所述报警文件对应M个数据包,M为大于或等于1的整数,所述客户端,用于:
针对所述M个数据包中的每个数据包,从所述数据包的包头中读取校验字符串;
在所述校验字符串为预设校验字符串的情况下,从所述包头中读取包头长度;
根据所述包头长度,从所述包头中读取所述报警文件的文件长度、所述报警文件的文件标识和所述数据包的包序号;
在所述文件标识对应的数组中,将所述数据包的净荷部分保存在所述包序号对应的存储空间中;
在所述数组中保存的属于所述报警文件的数据长度等于所述文件长度时,所述数组保存的属于所述报警文件的数据为所述报警文件。
可选的,所述数据包的包头还包括所述数据包的净荷长度,
所述客户端,用于:
根据所述文件标识,确定所述数据包是否是接收的第一个属于所述报警文件的数据包;
如果是第一个,则创建所述文件标识对应的数组,在所述数组中将所述数据包的净荷部分保存到所述包序号对应的存储空间中,在所述数组中保存属于所述报警文件的数据长度,所述数据长度等于所述数据包的净荷长度;
如果不是第一个,则确定所述文件标识对应的数组,在所述数组中将所述数据包的净荷部分保存到所述包序号对应的存储空间中,将所述数组中保存的属于所述报警文件的数据长度和所述数据包的净荷长度进行累加,得到累加值,将所述数组中保存的所述数据长度替换为所述累加值。
可选的,所述客户端,用于将解析得到的报警文件保存在内存中,根据所述内存中保存的所述报警文件,通过用于生成统一资源定位符URL的应用程序接口API,生成所述报警文件的URL;
可选的,所述客户端,还用于通过所述长连接向服务端发送订阅请求消息,所述订阅请求消息包括内容类型;通过所述长连接接收所述报警文件对应的报警信息,所述报警文件的内容属于所述内容类型;
所述服务端,还用于通过所述长连接向所述客户端发送所述报警文件对应的报警信息。
另一方面,本申请实施例提供了一种电子设备,包括至少一个处理器和至少一个存储器,所述至少一个存储器用于存储至少一个指令,所述至少一个指令被所述至少一个处理器加载并运行,以实现上述方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,用于存储至少一个指令,所述至少一个指令被处理器加载并运行,以实现上述方法。
另一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括在计算机可读存储介质中存储的计算机程序,并且所述计算程序通过处理器进行加载来实现上述方式的方法。
本申请实施例提供的技术方案可以包括以下有益效果:
客户端显示报警文件时需要基于报警文件的URL,由于客户端通过长连接接收报警文件的数据包,从报警文件的数据包解析出报警文件,生成报警文件的URL,这样客户端就可以基于生成的URL显示报警文件,如此服务端在获取到报警文件后,就可以向客户端发送报警文件,不需要保存报警文件,提高了推送报警文件的实时性。如果客户端采用轮询的方式,需要服务端先保存获取报警文件,这样客户端轮询服务端时才能得到报警文件的URL,再根据该URL从服务端获取并显示报警文件的。相比轮询方式,服务端不保存报警文件,在向客户端推送报警文件后就可以释放存储资源,减小对服务端的存储资源的占用,还避免了轮询导致大量消耗服务端的资源和带宽资源。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请实施例提供的一种***架构示意图;
图2是本申请实施例提供的另一种***架构示意图;
图3是本申请实施例提供的获取报警文件的方法流程图;
图4是本申请实施例提供的一种报警文件的示意图;
图5是本申请实施例提供的一种数据包的结构示意图;
图6是本申请实施例提供的另一种数据包的结构示意图;
图7是本申请实施例提供的再一种数据包的结构示意图;
图8是本申请实施例提供的一种显示报警文件的方法流程图;
图9是本申请实施例提供的另一种显示报警文件的方法流程图;
图10是本申请实施例提供的一种显示报警文件的装置结构示意图;
图11是本申请实施例提供的一种电子设备结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
参见图1,本申请实施例提供了一种显示报警文件的***,该***包括:
服务端1和客户端2,客户端2可以建立与服务端1之间的长连接。作为一种示例,该长连接可以为Websocket连接,Websocket连接是一条全双工的双向通信连接。
作为一种示例,客户端2可以为浏览器或其他应用。
服务端1可以获取报警文件。报警文件的文件类型可以为图片文件、视频文件或文本文件等。
可选的,服务端1可以为即网络硬盘录像机(Network Video Recorder,nvr)或网络摄像头(IP CAMERA,IPC)等。服务端1自身获取到报警文件,例如自身可以拍摄得到报警文件。
服务端1也可以为服务器,参见图2,服务端1还与至少一个监控摄像机3之间建立有连接。
对于每个监控摄像机3,该监控摄像机3可以向服务端1发送报警信息,紧随报警信息之后向服务端1发送至少一个报警文件。
该报警信息可以包括待发送的报警文件的文件数目、各报警文件的文件描述信息和该监控摄像机3的设备信息等至少一个。
报警文件的文件描述信息可以包括该报警文件的文件内容描述信息。例如,假设该报警文件是图片文件,该文件内容描述信息可以包括该图片文件是背景图,还是前景图、该图片文件中图像是否为人脸图像,在为人脸图像的情况下,该人脸图像对应的人的年龄、有无戴眼镜等信息。
该监控摄像机3的设备信息可以包括该监控摄像机3的地址。该地址可以包括互联网协议地址(Internet Protocol Address,IP)地址或媒体访问控制地址(Media AccessControl Address,MAC)地址中的至少一个。
参见图3,客户端2建立与服务端1之间的长连接(可以为Websocket连接)后,可以通过该长连接向服务端1发送订阅请求消息,该订阅请求消息包括内容类型,用于在服务端1中订阅文件内容属于该内容类型的报警文件。
内容类型可以包括人脸图像或车辆图像等,假设该订阅请求消息包括的内容类型为人脸图像,即在服务端1中订阅文件内容属于人脸图像的报警文件,也就是说服务端1在获取到属于人脸图像的报警文件时,向客户端2发送该报警文件。
服务端1接收该订阅请求消息,保存该订阅请求消息包括的内容类型。这样参见图4,当服务端1获取到信息内容属于该内容类型的报警信息时通过该长连接向客户端2发送该报警信息,以及当服务端1获取到文件内容属于该内容类型的报警文件时,将该报警文件封装成M个数据包,M为大于或等于1的整数,针对每个封装后的数据包,服务端1通过该长连接向客户端2发送该数据包,且在发送该数据包后,释放该数据包占用的存储资源。服务端也可以在发送报警文件对应的M个数据包后,释放该报警文件占用的存储资源。
可选的,在每封装成一个数据包时,服务端1通过该长连接向客户端2发送该数据包。
客户端2可以解析接收的数据包得到报警文件,生成报警文件的统一资源定位符(Uniform Resource Locator,URL),根据该报警文件的URL显示该报警文件。客户端2或服务端1也可以主动请求断开该长连接。
数据包包括包头和位于包头之后的净荷部分,净荷部分包括该报警文件或该报警文件的部分。参见图5,包头可以包括校验字段,包头长度字段、文件长度字段、文件标识字段和包序号字段。校验字段用于携带预设校验字符串,包头长度字段用于携带该数据包的包头长度,文件长度字段用于携带该报警文件的文件长度,文件标识字段用于携带报警文件的文件标识,包序号字段用于携带该数据包的包序号。
对于校验字段,包头长度字段、文件长度字段、文件标识字段和包序号字段等字段。这些字段在包头中的排列顺序有多种。在本申请中列举了一种排列顺序的示例进行说明,对于其他的排列顺序不再一一列举。
该示例为,参见图5,校验字段的长度为a个字节,a为大于1的整数,校验字段为包头的第0至a-1个字节;包头长度字段的长度为b个字节,b为大于1的整数,包头长度字段为包头的第a至a+b-1个字节;文件长度字段的长度为c个字节,c为大于1的整数,文件长度字段为包头的第a+b至a+b+c-1个字节;文件标识字段的长度为d个字节,d为大于1的整数,文件标识字段为包头的第a+b+c至a+b+c+d-1个字节;以及包序号字段的长度为e个字节,e为大于1的整数,包序号字段为包头的第a+b+c+d至a+b+c+d+e-1个字节。
参见图6,该数据包的包头中还可以包括净荷长度字段,该净荷长度字段可以用于携带该数据包的净荷部分的长度。该净荷长度字段可以位于文件长度字段和文件标识字段之间。净荷长度字段的长度为f个字节,f为大于1的整数,净荷长度字段为包头的第a+b+c至a+b+c+f-1个字节,相应地,文件标识字段为包头的第a+b+c+f至a+b+c+d+f-1个字节,包序号字段为包头的第a+b+c+d+f至a+b+c+d+f+e-1个字节。
参见图6,该数据包的包头中还可以包括文件类型字段,该文件类型字段可以用于携带该报警文件的文件类型。该文件类型字段可以位于包序号字段之后。文件类型字段的长度为g个字节,g为大于1的整数,文件类型字段为包头的第a+b+c+d+f+e至a+b+c+d+f+e+g-1个字节。
例如,参见图7,假设a为4、b为4、c为4,f为4,d为32,e为4,g为4。也就是说,校验字段为包头的第0至3个字节、包头长度字段为包头的第4至7个字节、文件长度字段为包头的第8至11个字节、净荷长度字段为包头的第12至15个字节、文件标识字段为包头的第16至47个字节、包序号字段为包头的第48至51个字节、文件类型字段为包头的第52至55个字节。
对于图6所示的数据包的包头可以定义成如下结构形式:
Figure BDA0002262823720000101
客户端2通过该长连接接收服务端1发送的该M个数据包;通过对该M个数据包的每个数据包的包头进行解析,得到该报警文件。
参见图8,本申请实施例提供了一种显示报警文件的方法,所述方法包括:
步骤101:通过与服务端之间的长连接接收所述服务端发送的报警文件对应的数据包,其中所述服务端发送所述报警文件后释放所述报警文件占用的存储资源。
步骤102:对所述报警文件对应的数据包解析得到所述报警文件。
步骤103:生成所述报警文件的统一资源定位符URL。
步骤104:根据所述报警文件的URL显示所述报警文件。
在本申请实施例中,由于与服务器之间存在长连接,这样可以通过长连接接收服务端的报警文件对应的数据包,对报警文件对应的数据包进行解析得到报警文件,生成该报警文件的URL,这样根据该报警文件的URL显示该报警文件。如此不需要采用轮询方式请求报警文件,服务端在得到报警文件就可以推送给客户端,可以不保存报警文件,从而在推送报警文件后就可释放报警文件占用的存储资源,减小对服务端的存储资源的占用,还避免了轮询导致大量消耗服务端的资源和带宽资源,提高推送报警文件的实时性。由于生成该报警文件的URL,根据该URL可以自动显示该报警文件。
参见图9,本申请实施例提供了另一种显示报警文件的方法,所述方法包括:
步骤201:客户端建立与服务端之间的长连接,通过该长连接向服务端发送订阅请求消息,该订阅请求消息包括内容类型。
该长连接可以为Websocket连接,内容类型可以包括人脸图像或车辆图像等。
步骤202:服务端接收该订阅请求消息,该订阅请求消息携带该内容类型,当服务端获取到信息内容属于该内容类型的报警信息时,通过该长连接向客户端发送该报警信息。
服务端接收到该订阅请求消息后,保存该订阅请求消息包括的内容类型。这样当服务端获取到信息内容属于该内容类型的报警信息时,通过该长连接向客户端发送该报警信息。
步骤203:客户端接收该报警信息。
步骤204:服务端当获取到文件内容属于该内容类型的报警文件时,将该报警文件封装成M个数据包。
在服务端获取到属于该内容类型的报警信息后,服务端还获取到文件内容属于该内容类型的报警文件,将该报警文件封装成M个数据包。
对于每个数据包,该数据包可以包括包头和净荷部分,包头位于净荷部分之前。参见图5,包头可以包括校验字段,包头长度字段、文件长度字段、文件标识字段和包序号字段。校验字段用于携带预设校验字符串,包头长度字段用于携带该数据包的包头长度,文件长度字段用于携带该报警文件的文件长度,文件标识字段用于携带报警文件的文件标识,包序号字段用于携带该数据包的包序号。
可选的,参见图6,该数据包的包头中还可以包括净荷长度字段,该净荷长度字段可以用于携带该数据包的净荷部分的长度。该净荷长度字段可以位于文件长度字段和文件标识字段之间。
可选的,参见图6,该数据包的包头中还可以包括文件类型字段,该文件类型字段可以用于携带该报警文件的文件类型。
步骤205:服务端通过该长连接向客户端发送该M个数据包,释放该M个数据包占用的存储资源。
对于该M个数据包,服务端在该长连接上每次向客户端发送一个数据包。
服务端还可以获取到文件内容属于该内容类型的报警文件,通过上述204或205的流程将该报警文件封装成至少一个数据包,并通过该长连接向客户端发送该至少一个数据包。从而实现服务端接收到文件内容属于订阅的内容类型的报警文件时,就可以向客户端发送,这样不需要轮询服务端,提高了获取报警文件的实时性,避免浪费服务端的资源和带宽资源。
服务端可以在发送该M个数据包后,释放该M个数据包占用的存储资源,较优地,可以在每发送一个数据包后,释放该数据包占用的存储资源,从而减少对服务端存储资源的占用。
步骤206:客户端接收数据包,从该数据包的包头中读取校验字符串,在校验字符串为预设校验字符串时,从该包头中读取包头长度。
在本步骤中客户端接收的数据包是该M个数据包中的任意一个,客户端接收的数据包可能是该报警文件的第一个数据包,也可能是该报警文件的最后一个数据包,也可能是位于第一个数据包和最后一个数据包之间的任一个数据包。
参见图5,校验字段是数据包的包头中的第一个字段,其长度为a个字节,第二个字段为包头长度字段,其长度为b个字节。
在本步骤中,该数据包的包头中读取前a个字节的信息得到检验字符串,在校验字符串为预设校验字符串时,从该数据包的包头中读取第a至a+b-1个字节的信息,得到包头长度。
步骤207:客户端根据该包头长度,从包头中读取报警文件的文件长度、报警文件的文件标识和该数据包的包序号。
客户端根据该包头长度,可以确定该数据包的包头剩余部分和净荷部分,并从该数据包中读取包头剩余部分。
参见图5,位于包头长度字段之后的字段为文件长度字段,文件长度字段的长度为c个字节。也就是说包头剩余部分的第一个字段为文件长度字段,从该包头剩余部分中读取第0至c-1个字节的信息,得到该报警文件的文件长度。
参见图5,位于文件长度字段之后的字段为文件标识字段,文件标识字段的长度为d个字节。这样从该包头剩余部分中读取第c至c+d-1个字节的信息,得到该报警文件的文件标识。
参见图5,位于文件标识字段之后的字段为包序号字段,包序号字段的长度为e个字节。这样从该包头剩余部分中读取第c+d至c+d+e-1个字节的信息,得到该数据包的包序号。
可选的,参见图5,该数据包的包头中还可以包括净荷长度字段,该净荷长度字段可以用于携带该数据包的净荷部分的长度。该净荷长度字段可以位于文件长度字段和文件标识字段之间。该净荷长度字段的长度为f个字节。
在图5所示的数据包的包头中,从该包头剩余部分中读取第0至c-1个字节的信息,得到该报警文件的文件长度。从该包头剩余部分中读取第c至c+f-1个字节的信息,得到该数据包的净荷部分的长度。从该包头剩余部分中读取第c+f至c+f+d-1个字节的信息,得到该报警文件的文件标识。以及,从该包头剩余部分中读取第c+f+d至c+f+d+e-1个字节的信息,得到该数据包的包序号。
可选的,参见图5,该数据包的包头中还可以包括文件类型字段,该文件类型字段可以用于携带该报警文件的文件类型。该文件类型字段可以位于包序号字段之后。该文件类型字段的长度为g个字节。
在图5所示的数据包的包头中,从该包头剩余部分中读取第c+f+d+e至c+f+d+e+g-1个字节的信息,得到该报警文件的文件类型。
步骤208:客户端在该文件标识对应的数组中,将该数据包的净荷部分保存在该包序号对应的存储空间中。
在客户端接收到报警文件的数据包的过程中,使用一个数组来缓存已接收的属于该报警文件的各数据包的净荷部分。该数组与该报警文件的文件标识相对应,该数组包括至少一个存储空间,属于该报警文件的每个数据包对应一个存储空间,且每个数据包对应的存储空间不同。
客户端可以为浏览器,该数组可以位于浏览器内存中。
在本步骤中,根据该报警文件的文件标识,确定该数据包是否是接收的第一个属于该报警文件的数据包;如果是第一个,则创建该文件标识对应的数组,在该数组中将该数据包的净荷部分保存到该包序号对应的存储空间中;如果不是第一个,则确定该文件标识对应的数组,在该数组中将该数据包的净荷部分保存到该包序号对应的存储空间中。
可选的,将该数据包的净荷部分保存到该包序号对应的存储空间中之前,还可以比较净荷长度字段中携带的该数据包的净荷长度与该数据的净荷部分的实际长度是否相等。如果相等,则表明该数据的净荷部分没有发生数据丢失,将该数据包的净荷部分保存到该包序号对应的存储空间。如果不相等,则表明该数据的净荷部分发生数据丢失,丢弃该数组保存的该报警文件的数据。
可选的,如果该数据包的净荷部分发生数据丢失,也可以将该数据包的净荷部分保存到该包序号对应的存储空间,这样显示出的报警文件可能存在部分内容缺失。例如,假设报警文件为图片,则显示的图片中存在部分内容缺失。
其中,包序号可以从1开始顺序编号,包序号1对应该数组中的第一个存储空间,包序号2对应该数据组中的第二个存储空间,以此类推,对于其他包序号不再一一说明。
参见图6,该数据包的包头还包括该数据包的净荷长度,该数组还保存有属于该报警文件的数据长度,具体地,可以是在接收到第一个属于该报警文件的数据包的情况下,在该数组中保存属于该报警文件的数据长度,所述数据长度等于所述第一个数据包的净荷长度;在接收到的属于该报警文件的数据包不是第一个属于该报警文件的数据包的情况下,在将该数据包的净荷部分保存在该包序号对应的存储空间中之后,还可以将数组中保存的属于该报警文件的数据长度和该数据包的净荷长度进行累加,得到累加值,将该数组中保存的属于该报警文件的数据长度替换为该累加值。
在本步骤中,在将该数组中保存的属于该报警文件的数据长度替换为该累加值之后,还判断该数组中保存的该报警文件的数据长度是否等于报警文件的文件长度,如果等于,则执行步骤209,如果不等于,则客户端当接收到数据包时重新执行206至208的操作。
步骤209:客户端在该数组中保存的属于该报警文件的数据长度等于该报警文件的文件长度时,该数组保存的属于该报警文件的数据为该报警文件,生成该报警文件的URL。
客户端提供用于生成URL的应用程序编程接口(ApplicationProgrammingInterface,API)。客户端可以调用该API,将该数组中保存的该报警文件输入到该API,通过该API生成该报警文件的URL。
可选的,可以在报警文件的文件类型为图片或视频时,生成该报警文件的URL。
可选的,该URL可以是报警文件的临时URL。
可选的,客户端得到报警文件后,可以将报警文件保存在客户端的内存中,并统计客户端的内存中保存的报警文件数目,在该报警文件数目达到预设数目阈值,则从客户端的内存中删除最早保存的报警文件。这样可以避免客户端的内存被无限制占用,得不到有效释放。
可选的,可以设置管理数组,该管理数组包括的存储空间数目为预设数目阈值。在生成报警文件的URL时,若管理数组中还存在空闲的存储空间,将当前时间作为生成的报警文件的保存时间,将该生成的报警文件的URL和该保存时间保存到管理数组的一个空闲存储空间;若该管理数组中没有空闲的存储空间,从该管理数组中找出保存时间最早的报警文件的URL,从客户端的内存中删除所述保存时间最早的URL对应的报警文件,清空所述保存时间最早的URL所在的存储空间,将该生成的报警文件的URL和保存时间保存到该清空的存储空间。
步骤210:客户端根据该报警文件的URL显示该报警文件。
在客户端为浏览器时,由于浏览器是基于图片或视频的URL进行显示的,为了不对浏览器已有的逻辑进行修改,所以通过用于生成URL的API生成该报警文件的URL,这样浏览器根据该URL可以自动显示该报警文件。
可选的,在报警文件为文本文件时,浏览器也可以不用生成文本文件的URL,可以直接显示文本文件。
可选的,对于客户端与服务端之间的长连接,可以由客户端主动断开,或由服务端主动断开。
在本申请实施例中,由于客户端显示报警文件需要基于报警文件的URL,通过客户端建立与服务器之间的长连接,向服务端发送该订阅请求消息,这样在服务端在接收到文件内容属于该内容类型的报警文件时发送M个数据包,从该M个数据包解析出报警文件,生成报警文件的URL,这样客户端就可以基于生成的URL显示报警文件,从而提高发送报警文件的效率,也避免了轮询导致大量消耗服务端的资源和带宽资源。相较于轮询去取服务端中报警文件对应URL,服务端由于存储空间受限,一旦报警文件较多时服务端后面获取的报警文件会覆盖前面获取的报警文件,但如果在覆盖时客户端还未轮询到,那被覆盖的报警文件就不能推送到客户端显示,从而导致显示报警文件不可靠。而在本方案中可以将每个报警文件都可以推送显示,提高显示报警文件可靠性。相较于在服务端存储报警文件,客户端轮询去取URL的方式,由于本方案在客户端的内存中存储报警文件并生成报警文件对应的URL,服务端就不用存储报警文件,在推送报警文件后就可释放报警文件占用的存储资源,减少了服务端存储空间的占用。另外,数据包的包头中包括校验字段,包头长度字段、文件长度字段、文件标识字段和包序号字段。校验字段用于携带预设校验字符串,包头长度字段用于携带该数据包的包头长度,文件长度字段用于携带该报警文件的文件长度,文件标识字段用于携带报警文件的文件标识,包序号字段用于携带该数据包的包序号。这样基于包头中的各字段,可以成功识别出属于一个报警文件的M个数据包,并解析出报警文件。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
参见图10,本申请实施例提供了一种显示报警文件的装置300,所述装置300包括:
接收模块301,用于通过与服务端之间的长连接接收所述服务端发送的报警文件对应的数据包,其中所述服务端发送所述报警文件后释放所述报警文件占用的存储资源;
解析模块302,用于对所述报警文件对应的数据包解析得到所述报警文件;
生成模块303,用于生成所述报警文件的统一资源定位符URL;
显示模块304,用于根据所述报警文件的URL显示所述报警文件。
可选的,所述报警文件对应M个数据包,M为大于或等于1的整数,所述解析模块302,用于:
针对所述M个数据包中的每个数据包,从所述数据包的包头中读取校验字符串;
在所述校验字符串为预设校验字符串的情况下,从所述包头中读取包头长度;
根据所述包头长度,从所述包头中读取所述报警文件的文件长度、所述报警文件的文件标识和所述数据包的包序号;
在所述文件标识对应的数组中,将所述数据包的净荷部分保存在所述包序号对应的存储空间中;
在所述数组中保存的属于所述报警文件的数据长度等于所述文件长度时,将所述数组保存的属于所述报警文件的数据为所述报警文件。
可选的,所述数据包的包头还包括所述数据包的净荷长度,
所述解析模块302,用于:
根据所述文件标识,确定所述数据包是否是接收的第一个属于所述报警文件的数据包;
如果是第一个,则创建所述文件标识对应的数组,在所述数组中将所述数据包的净荷部分保存到所述包序号对应的存储空间中,在所述数组中保存属于所述报警文件的数据长度,所述数据长度等于所述数据包的净荷长度;
如果不是第一个,则确定所述文件标识对应的数组,在所述数组中将所述数据包的净荷部分保存到所述包序号对应的存储空间中,将所述数组中保存的属于所述报警文件的数据长度和所述数据包的净荷长度进行累加,得到累加值,将所述数组中保存的所述数据长度替换为所述累加值。
可选的,所述解析得到的报警文件保存在内存中,所述生成模块303,用于:
根据内存中保存的所述报警文件,通过用于生成统一资源定位符URL的应用程序接口API,生成所述报警文件的URL。
可选的,所述装置300还包括:发送模块,
所述发送模块,用于通过所述长连接向服务端发送订阅请求消息,所述订阅请求消息包括内容类型;
所述接收模块,还用于通过所述长连接接收所述报警文件对应的报警信息,所述报警文件的内容属于所述内容类型。
在本申请实施例中,显示模块显示报警文件时需要基于报警文件的URL,由于与服务器之间存在的长连接,这样接收模块可以通过长连接接收服务端的报警文件对应的数据包,解析模块对报警文件对应的数据包进行解析得到报警文件,生成模块通过用于生成URL的API生成的该报警文件的URL,显示模块根据该URL可以自动显示该报警文件,如此服务端在获取到报警文件后,就可以向该装置发送报警文件,不需要保存报警文件,在推送报警文件后就可释放报警文件占用的存储资源,提高了推送报警文件的实时性,减小对服务端的存储资源的占用,还避免了轮询导致大量消耗服务端的资源和带宽资源。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图11示出了本发明一个示例性实施例提供的电子设备400的结构框图。该电子设备400中可以运行上述客户端,可以是便携式移动终端,比如:智能手机、平板电脑、笔记本电脑或台式电脑。电子设备400还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,电子设备400包括有:处理器401和存储器402。
处理器401可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器401可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器401可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器401还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器402中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器401所执行以实现本申请中方法实施例提供的显示报警文件的方法。
在一些实施例中,电子设备400还可选包括有:***设备接口403和至少一个***设备。处理器401、存储器402和***设备接口403之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与***设备接口403相连。具体地,***设备包括:射频电路404、触摸显示屏405、摄像头406、音频电路407、定位组件408和电源409中的至少一种。
***设备接口403可被用于将I/O(Input/Output,输入/输出)相关的至少一个***设备连接到处理器401和存储器402。在一些实施例中,处理器401、存储器402和***设备接口403被集成在同一芯片或电路板上;在一些其他实施例中,处理器401、存储器402和***设备接口403中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路404用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路404通过电磁信号与通信网络以及其他通信设备进行通信。射频电路404将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路404包括:天线***、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路404可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路404还可以包括NFC(Near FieldCommunication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏405用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏405是触摸显示屏时,显示屏405还具有采集在显示屏405的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器401进行处理。此时,显示屏405还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏405可以为一个,设置电子设备400的前面板;在另一些实施例中,显示屏405可以为至少两个,分别设置在电子设备400的不同表面或呈折叠设计;在再一些实施例中,显示屏405可以是柔性显示屏,设置在电子设备400的弯曲表面上或折叠面上。甚至,显示屏405还可以设置成非矩形的不规则图形,也即异形屏。显示屏405可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件406用于采集图像或视频。可选地,摄像头组件406包括前置摄像头和后置摄像头。通常,前置摄像头设置在电子设备400的前面板,后置摄像头设置在电子设备400的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件406还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路407可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器401进行处理,或者输入至射频电路404以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备400的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器401或射频电路404的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路407还可以包括耳机插孔。
定位组件408用于定位电子设备400的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件408可以是基于美国的GPS(GlobalPositioning System,全球定位***)、中国的北斗***或俄罗斯的伽利略***的定位组件。
电源409用于为电子设备400中的各个组件进行供电。电源409可以是交流电、直流电、一次性电池或可充电电池。当电源409包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,电子设备400还包括有一个或多个传感器410。该一个或多个传感器410包括但不限于:加速度传感器411、陀螺仪传感器412、压力传感器413、指纹传感器414、光学传感器415以及接近传感器416。
加速度传感器411可以检测以电子设备400建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器411可以用于检测重力加速度在三个坐标轴上的分量。处理器401可以根据加速度传感器411采集的重力加速度信号,控制触摸显示屏405以横向视图或纵向视图进行用户界面的显示。加速度传感器411还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器412可以检测电子设备400的机体方向及转动角度,陀螺仪传感器412可以与加速度传感器411协同采集用户对电子设备400的3D动作。处理器401根据陀螺仪传感器412采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器413可以设置在电子设备400的侧边框和/或触摸显示屏405的下层。当压力传感器413设置在电子设备400的侧边框时,可以检测用户对电子设备400的握持信号,由处理器401根据压力传感器413采集的握持信号进行左右手识别或快捷操作。当压力传感器413设置在触摸显示屏405的下层时,由处理器401根据用户对触摸显示屏405的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器414用于采集用户的指纹,由处理器401根据指纹传感器414采集到的指纹识别用户的身份,或者,由指纹传感器414根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器401授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器414可以被设置电子设备400的正面、背面或侧面。当电子设备400上设置有物理按键或厂商Logo时,指纹传感器414可以与物理按键或厂商Logo集成在一起。
光学传感器415用于采集环境光强度。在一个实施例中,处理器401可以根据光学传感器415采集的环境光强度,控制触摸显示屏405的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏405的显示亮度;当环境光强度较低时,调低触摸显示屏405的显示亮度。在另一个实施例中,处理器401还可以根据光学传感器415采集的环境光强度,动态调整摄像头组件406的拍摄参数。
接近传感器416,也称距离传感器,通常设置在电子设备400的前面板。接近传感器416用于采集用户与电子设备400的正面之间的距离。在一个实施例中,当接近传感器416检测到用户与电子设备400的正面之间的距离逐渐变小时,由处理器401控制触摸显示屏405从亮屏状态切换为息屏状态;当接近传感器416检测到用户与电子设备400的正面之间的距离逐渐变大时,由处理器401控制触摸显示屏405从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图11中示出的结构并不构成对电子设备400的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在本公开实施例中,由于与服务端之间存在的长连接,这样可以通过长连接接收服务端的报警文件对应的数据包,处理器对报警文件对应的数据包进行解析得到报警文件,生成该报警文件的URL,这样根据该报警文件的URL在显示屏中显示该报警文件。如此处理器不需要采用轮询方式请求报警文件,服务端在得到报警文件就可以推送给电子设备,可以不保存报警文件,从而在推送报警文件后就可释放报警文件占用的存储资源,减小对服务端的存储资源的占用,还避免了轮询导致大量消耗服务端的资源和带宽资源,提高推送报警文件的实时性。由于处理器生成该报警文件的URL,根据该URL可以自动显示该报警文件。
在示例性实施例中,本公开还提供了一种计算机可读存储介质,所述存储介质中存储有代码指令,所述代码指令由处理器执行,以执行上述实施例提供的显示报警文件的方法。例如,所述非易失性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在本公开实施例中,由于处理器通过长连接接收服务端的报警文件对应的数据包,对报警文件对应的数据包进行解析得到报警文件,生成该报警文件的URL,这样根据该报警文件的URL显示该报警文件。如此处理器不需要采用轮询方式请求报警文件,这样服务端可以不保存报警文件,从而在推送报警文件后就可释放报警文件占用的存储资源,减小对服务端的存储资源的占用,还避免了轮询导致大量消耗服务端的资源和带宽资源,提高推送报警文件的实时性。由于处理器生成该报警文件的URL,根据该URL可以自动显示该报警文件。
在示例性实施例中,本公开还提供了一种计算机程序产品,所述计算机程序产品包括在计算机可读存储介质中存储的计算机程序,并且所述计算程序通过处理器进行加载来实现上述实施例提供的显示报警文件的方法。
在本公开实施例中,由于处理器通过长连接接收服务端的报警文件对应的数据包,处理器对报警文件对应的数据包进行解析得到报警文件,生成该报警文件的URL,这样根据该报警文件的URL显示该报警文件。如此处理器不需要采用轮询方式请求报警文件,这样服务器可以不保存报警文件,从而在推送报警文件后就可释放报警文件占用的存储资源,减小对服务端的存储资源的占用,还避免了轮询导致大量消耗服务端的资源和带宽资源,提高推送报警文件的实时性。由于处理器生成该报警文件的URL,根据该URL可以自动显示该报警文件。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (13)

1.一种显示报警文件的方法,其特征在于,所述方法包括:
通过与服务端之间的长连接接收所述服务端发送的报警文件对应的数据包,其中所述服务端发送所述报警文件后释放所述报警文件占用的存储资源;
对所述报警文件对应的数据包解析得到所述报警文件;
生成所述报警文件的统一资源定位符URL;
根据所述报警文件的URL显示所述报警文件。
2.如权利要求1所述的方法,其特征在于,所述报警文件对应M个数据包,M为大于或等于1的整数,所述对所述报警文件对应的数据包解析得到所述报警文件,包括:
针对所述M个数据包中的每个数据包,从所述数据包的包头中读取校验字符串;
在所述校验字符串为预设校验字符串的情况下,从所述包头中读取包头长度;
根据所述包头长度,从所述包头中读取所述报警文件的文件长度、所述报警文件的文件标识和所述数据包的包序号;
在所述文件标识对应的数组中,将所述数据包的净荷部分保存在所述包序号对应的存储空间中;
在所述数组中保存的属于所述报警文件的数据长度等于所述文件长度时,所述数组保存的属于所述报警文件的数据为所述报警文件。
3.如权利要求2所述的方法,其特征在于,所述数据包的包头还包括所述数据包的净荷长度,
所述在所述文件标识对应的数组中,将所述数据包的净荷部分保存在所述包序号对应的存储空间中,包括:
根据所述文件标识,确定所述数据包是否是接收的第一个属于所述报警文件的数据包;
如果是第一个,则创建所述文件标识对应的数组,在所述数组中将所述数据包的净荷部分保存到所述包序号对应的存储空间中,在所述数组中保存属于所述报警文件的数据长度,所述数据长度等于所述数据包的净荷长度;
如果不是第一个,则确定所述文件标识对应的数组,在所述数组中将所述数据包的净荷部分保存到所述包序号对应的存储空间中,将所述数组中保存的属于所述报警文件的数据长度和所述数据包的净荷长度进行累加,得到累加值,将所述数组中保存的所述数据长度替换为所述累加值。
4.如权利要求1所述的方法,其特征在于,所述解析得到的报警文件保存在内存中,所述生成所述报警文件的统一资源定位符URL,包括:
根据所述内存中保存的所述报警文件,通过用于生成统一资源定位符URL的应用程序接口API,生成所述报警文件的URL。
5.如权利要求1所述的方法,其特征在于,所述通过与服务端之间的长连接接收所述服务端发送的报警文件对应的数据包之前,还包括:
通过所述长连接向服务端发送订阅请求消息,所述订阅请求消息包括内容类型;
通过所述长连接接收所述报警文件对应的报警信息,所述报警文件的内容属于所述内容类型。
6.一种显示报警文件的装置,其特征在于,所述装置包括:
接收模块,用于通过与服务端之间的长连接接收所述服务端发送的报警文件对应的数据包,其中所述服务端发送所述报警文件后释放所述报警文件占用的存储资源;
解析模块,用于对所述报警文件对应的数据包解析得到所述报警文件;
生成模块,用于生成所述报警文件的统一资源定位符URL;
显示模块,用于根据所述报警文件的URL显示所述报警文件。
7.如权利要求6所述的装置,其特征在于,所述报警文件对应M个数据包,M为大于或等于1的整数,所述解析模块,用于:
针对所述M个数据包中的每个数据包,从所述数据包的包头中读取校验字符串;
在所述校验字符串为预设校验字符串的情况下,从所述包头中读取包头长度;
根据所述包头长度,从所述包头中读取所述报警文件的文件长度、所述报警文件的文件标识和所述数据包的包序号;
在所述文件标识对应的数组中,将所述数据包的净荷部分保存在所述包序号对应的存储空间中;
在所述数组中保存的属于所述报警文件的数据长度等于所述文件长度时,将所述数组保存的属于所述报警文件的数据为所述报警文件。
8.如权利要求7所述的装置,其特征在于,所述数据包的包头还包括所述数据包的净荷长度,
所述解析模块,用于:
根据所述文件标识,确定所述数据包是否是接收的第一个属于所述报警文件的数据包;
如果是第一个,则创建所述文件标识对应的数组,在所述数组中将所述数据包的净荷部分保存到所述包序号对应的存储空间中,在所述数组中保存属于所述报警文件的数据长度,所述数据长度等于所述数据包的净荷长度;
如果不是第一个,则确定所述文件标识对应的数组,在所述数组中将所述数据包的净荷部分保存到所述包序号对应的存储空间中,将所述数组中保存的属于所述报警文件的数据长度和所述数据包的净荷长度进行累加,得到累加值,将所述数组中保存的所述数据长度替换为所述累加值。
9.如权利要求6所述的装置,其特征在于,所述解析得到的报警文件保存在内存中,所述生成模块,用于:
根据内存中保存的所述报警文件,通过用于生成统一资源定位符URL的应用程序接口API,生成所述报警文件的URL;
其中,所述装置还包括:发送模块,
所述发送模块,用于通过所述长连接向服务端发送订阅请求消息,所述订阅请求消息包括内容类型;
所述接收模块,还用于通过所述长连接接收所述报警文件对应的报警信息,所述报警文件的内容属于所述内容类型。
10.一种显示报警文件的***,其特征在于,所述***包括:客户端和服务端;
所述服务端,用于通过与所述客户端之间的长连接向所述客户端发送报警文件对应的数据包,释放所述报警文件占用的存储资源;
所述客户端,用于通过与所述服务端之间的长连接接收所述报警文件对应的数据包;对所述报警文件对应的数据包解析得到所述报警文件;生成所述报警文件的统一资源定位符URL;根据所述报警文件的URL显示所述报警文件。
11.如权利要求10所述的***,其特征在于,所述报警文件对应M个数据包,M为大于或等于1的整数,所述客户端,用于:
针对所述M个数据包中的每个数据包,从所述数据包的包头中读取校验字符串;
在所述校验字符串为预设校验字符串的情况下,从所述包头中读取包头长度;
根据所述包头长度,从所述包头中读取所述报警文件的文件长度、所述报警文件的文件标识和所述数据包的包序号;
在所述文件标识对应的数组中,将所述数据包的净荷部分保存在所述包序号对应的存储空间中;
在所述数组中保存的属于所述报警文件的数据长度等于所述文件长度时,所述数组保存的属于所述报警文件的数据为所述报警文件。
12.如权利要求11所述的***,其特征在于,所述数据包的包头还包括所述数据包的净荷长度,
所述客户端,用于:
根据所述文件标识,确定所述数据包是否是接收的第一个属于所述报警文件的数据包;
如果是第一个,则创建所述文件标识对应的数组,在所述数组中将所述数据包的净荷部分保存到所述包序号对应的存储空间中,在所述数组中保存属于所述报警文件的数据长度,所述数据长度等于所述数据包的净荷长度;
如果不是第一个,则确定所述文件标识对应的数组,在所述数组中将所述数据包的净荷部分保存到所述包序号对应的存储空间中,将所述数组中保存的属于所述报警文件的数据长度和所述数据包的净荷长度进行累加,得到累加值,将所述数组中保存的所述数据长度替换为所述累加值。
13.如权利要求10所述的***,其特征在于,
所述客户端,用于将解析得到的报警文件保存在内存中,根据所述内存中保存的所述报警文件,通过用于生成统一资源定位符URL的应用程序接口API,生成所述报警文件的URL;
所述客户端,还用于通过所述长连接向服务端发送订阅请求消息,所述订阅请求消息包括内容类型;通过所述长连接接收所述报警文件对应的报警信息,所述报警文件的内容属于所述内容类型;
所述服务端,还用于通过所述长连接向所述客户端发送所述报警文件对应的报警信息。
CN201911077085.2A 2019-11-06 2019-11-06 一种显示报警文件的方法、装置及*** Pending CN111427850A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201911077085.2A CN111427850A (zh) 2019-11-06 2019-11-06 一种显示报警文件的方法、装置及***
EP20885783.9A EP4044513A4 (en) 2019-11-06 2020-11-02 METHOD, APPARATUS AND SYSTEM FOR DISPLAYING AN ALARM FILE
PCT/CN2020/125955 WO2021088773A1 (zh) 2019-11-06 2020-11-02 一种显示报警文件的方法、装置及***
US17/772,811 US20220414178A1 (en) 2019-11-06 2020-11-02 Methods, apparatuses and systems for displaying alarm file

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911077085.2A CN111427850A (zh) 2019-11-06 2019-11-06 一种显示报警文件的方法、装置及***

Publications (1)

Publication Number Publication Date
CN111427850A true CN111427850A (zh) 2020-07-17

Family

ID=71546841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911077085.2A Pending CN111427850A (zh) 2019-11-06 2019-11-06 一种显示报警文件的方法、装置及***

Country Status (4)

Country Link
US (1) US20220414178A1 (zh)
EP (1) EP4044513A4 (zh)
CN (1) CN111427850A (zh)
WO (1) WO2021088773A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021088773A1 (zh) * 2019-11-06 2021-05-14 杭州海康威视数字技术股份有限公司 一种显示报警文件的方法、装置及***
CN113242403A (zh) * 2021-03-31 2021-08-10 普天和平科技有限公司 一种服务器以及视频播放***

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104010039A (zh) * 2014-06-05 2014-08-27 北京航空航天大学 一种基于WebSocket的多雷达远程监控***及方法
GB201501437D0 (en) * 2015-01-28 2015-03-11 Canon Kk Client-driven push of resources by a server device
CN105610605A (zh) * 2015-12-18 2016-05-25 成都广达新网科技股份有限公司 一种消息反向推送、网管***报警及状态更新的方法
CN107342896A (zh) * 2017-07-04 2017-11-10 郑州云海信息技术有限公司 一种信息获取方法、装置及***
CN107426029A (zh) * 2017-08-08 2017-12-01 郑州云海信息技术有限公司 一种信息获取方法、装置及***
CN109067899A (zh) * 2018-08-24 2018-12-21 珠海格力电器股份有限公司 数据显示方法和装置、数据推送方法和装置
CN109508273A (zh) * 2018-09-21 2019-03-22 广东电网有限责任公司珠海供电局 一种基于Web的电动汽车充电站监控***及数据获取方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6349333B1 (en) * 1998-12-04 2002-02-19 Sun Microsystems, Inc. Platform independent alarm service for manipulating managed objects in a distributed network management system
KR100434270B1 (ko) * 2001-05-30 2004-06-04 엘지전자 주식회사 가전기기 네트워크 제어시스템
JP2004070859A (ja) * 2002-08-09 2004-03-04 Fujitsu Ltd 障害情報管理システム
US7512721B1 (en) * 2004-05-25 2009-03-31 Qlogic, Corporation Method and apparatus for efficient determination of status from DMA lists
JP2011118733A (ja) * 2009-12-04 2011-06-16 Yokogawa Electric Corp プログラマブルロジックコントローラ
US9501922B2 (en) * 2011-06-08 2016-11-22 Honeywell International Inc. System and method for automated posting of alarm information to news feed
TWI654881B (zh) * 2012-06-27 2019-03-21 尤比奎蒂網絡公司 控制感應器裝置的方法和設備
GB2511067B (en) * 2013-02-21 2017-02-08 Vdt Direct Ltd Alarm notification system
US10033794B2 (en) * 2015-07-17 2018-07-24 Bio-Rad Laboratories, Inc. Network transfer of large files in unstable network environments
CN106100914B (zh) * 2016-08-25 2020-02-21 上海斐讯数据通信技术有限公司 一种云ac告警信息的推送方法及***
CN107231406A (zh) * 2017-04-21 2017-10-03 华北电力大学 一种向Web页面高效传输及推送报警数据方法
CN109270850A (zh) * 2018-12-13 2019-01-25 桂林电子科技大学 一种基于物联网的智能家居管理***及方法
CN111427850A (zh) * 2019-11-06 2020-07-17 杭州海康威视数字技术股份有限公司 一种显示报警文件的方法、装置及***

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104010039A (zh) * 2014-06-05 2014-08-27 北京航空航天大学 一种基于WebSocket的多雷达远程监控***及方法
GB201501437D0 (en) * 2015-01-28 2015-03-11 Canon Kk Client-driven push of resources by a server device
CN105610605A (zh) * 2015-12-18 2016-05-25 成都广达新网科技股份有限公司 一种消息反向推送、网管***报警及状态更新的方法
CN107342896A (zh) * 2017-07-04 2017-11-10 郑州云海信息技术有限公司 一种信息获取方法、装置及***
CN107426029A (zh) * 2017-08-08 2017-12-01 郑州云海信息技术有限公司 一种信息获取方法、装置及***
CN109067899A (zh) * 2018-08-24 2018-12-21 珠海格力电器股份有限公司 数据显示方法和装置、数据推送方法和装置
CN109508273A (zh) * 2018-09-21 2019-03-22 广东电网有限责任公司珠海供电局 一种基于Web的电动汽车充电站监控***及数据获取方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021088773A1 (zh) * 2019-11-06 2021-05-14 杭州海康威视数字技术股份有限公司 一种显示报警文件的方法、装置及***
CN113242403A (zh) * 2021-03-31 2021-08-10 普天和平科技有限公司 一种服务器以及视频播放***

Also Published As

Publication number Publication date
EP4044513A4 (en) 2022-11-16
EP4044513A1 (en) 2022-08-17
WO2021088773A1 (zh) 2021-05-14
US20220414178A1 (en) 2022-12-29

Similar Documents

Publication Publication Date Title
CN108833963B (zh) 显示界面画面的方法、计算机设备、可读存储介质和***
CN111225042B (zh) 数据传输的方法、装置、计算机设备以及存储介质
CN108966008B (zh) 直播视频回放方法及装置
JP2022516663A (ja) データ伝送方法と電子デバイス
CN111092809B (zh) 实时推送信息的方法、装置、计算机设备及存储介质
CN110569220B (zh) 游戏资源文件的展示方法、装置、终端及存储介质
CN111355774B (zh) 一种基于p2p的服务通信方法、装置及***
CN110149491B (zh) 视频编码方法、视频解码方法、终端及存储介质
CN110944374A (zh) 通信模式的选择方法、装置、电子设备及介质
CN110837426A (zh) 消息处理方法、装置及***、存储介质
CN111159604A (zh) 图片资源加载方法及装置
CN108616835B (zh) 基于浏览器的网络资源获取方法、装置、***及存储介质
CN108111397B (zh) 转发通知消息的处理方法及装置
WO2021088773A1 (zh) 一种显示报警文件的方法、装置及***
CN111106902B (zh) 数据报文传输方法、装置、设备及计算机可读存储介质
CN111131392A (zh) 处理消息的方法、装置、电子设备及介质
CN109995704B (zh) 广告拦截方法、装置、设备及计算机可读存储介质
CN110912830A (zh) 传输数据的方法和装置
CN110113669B (zh) 获取视频数据的方法、装置、电子设备及存储介质
CN112770177A (zh) 多媒体文件生成方法、多媒体文件发布方法及装置
CN110086814B (zh) 一种数据获取的方法、装置及存储介质
CN109714628B (zh) 播放音视频的方法、装置、设备、存储介质及***
CN107800720B (zh) 劫持上报方法、装置、存储介质及设备
CN110913213B (zh) 视频质量评测处理的方法、装置及***
CN110971692B (zh) 开通服务的方法、装置及计算机存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination