基于事件通知机制的消息通讯方法及相关设备与流程

专利2024-10-14  50



1.本发明涉及智能监控技术领域,尤其涉及一种基于事件通知机制的消息通讯方法及相关设备。


背景技术:

2.目前,通常由原生端通过执行javascript将数据传给h5页面,或者由h5页面通过postmessage主动发送消息由系统转发到原生端来实现原生端与h5页面的交互,然而,当h5页面需要获悉原生端中某些事件的事件状态时,通常需要调用bridge函数实时监测原生端中的事件,导致h5页面与原生端之间的通道资源被长期占用,不利于原生端与h5页面的通讯。


技术实现要素:

3.鉴于以上内容,有必要提供一种基于事件通知机制的消息通讯方法及相关设备,能够解决在监听原生端中的事件时,h5页面与原生端之间的通道资源被长期占用的技术问题。
4.一方面,本发明提出一种基于事件通知机制的消息通讯方法,应用于原生端,所述原生端与h5页面相通信,所述基于事件通知机制的消息通讯方法包括:
5.接收所述h5页面发送的添加事件观察者请求;
6.从所述添加事件观察者请求中提取待添加观察者的观察者信息;
7.将所述观察者信息维护至预设观察者列表中,得到目标观察者列表;
8.当检测到所述目标观察者列表中的维护观察者的维护数量大于或者等于预设数量时,调用预设函数对所述维护观察者的事件状态进行监测;
9.当监测到所述事件状态发生变化时,发送所述事件状态至所述h5页面。
10.根据本发明优选实施例,所述方法还包括:
11.接收所述h5页面发送的移除事件观察者请求;
12.基于所述移除事件观察者请求中的事件识别码从所述目标观察者列表中定位出待移除观察者的移除信息;
13.基于所述目标观察者列表删除所述移除信息,得到更新观察者列表;
14.当检测到所述更新观察者列表中更新观察者的更新数量小于所述预设数量时,获取预设监测线程的线程状态;
15.基于所述线程状态,控制所述预设监测线程的状态为闲置状态。
16.根据本发明优选实施例,所述从所述添加事件观察者请求中提取待添加观察者的观察者信息包括:
17.获取所述预设观察者列表中的信息标签;
18.解析所述添加事件观察者请求的请求报文,得到所述请求报文携带的报文信息;
19.从所述报文信息中提取出与所述信息标签对应的信息作为所述观察者信息。
20.根据本发明优选实施例,所述将所述观察者信息维护至预设观察者列表中,得到目标观察者列表包括:
21.基于所述预设观察者列表的主键标识从所述信息标签中提取主键标签;
22.从所述观察者信息中获取与所述主键标签对应的信息作为主键信息;
23.拼接所述观察者信息中与所述主键标签不对应的多个信息作为从键信息;
24.将所述主键信息及所述从键信息分别写入所述预设观察者列表中,得到所述目标观察者列表。
25.根据本发明优选实施例,所述调用预设函数对所述维护观察者的事件状态进行监测包括:
26.将所述维护观察者的观察者识别码写入所述预设函数中,得到观察者监听信息;
27.执行所述监听信息,得到所述维护观察者的执行线程标识;
28.获取与所述执行线程标识的线程用途作为所述事件状态。
29.根据本发明优选实施例,在调用预设函数对所述维护观察者的事件状态进行监测之后,所述方法还包括:
30.获取所述事件状态所对应的监测时刻,并获取所述添加事件观察者请求的接收时刻;
31.基于所述监测时刻及所述接收时刻构建时间区间;
32.获取所述维护观察者在所述时间区间上所对应的历史状态;
33.检测所述历史状态与所述事件状态是否相同;
34.若所述历史状态与所述事件状态不同,则确定所述事件状态发生变化。
35.根据本发明优选实施例,所述发送所述事件状态至所述h5页面包括:
36.从所述观察者信息中提取回调函数;
37.将所述事件状态写入所述回调函数中,得到反馈响应;
38.基于所述反馈响应信息执行将所述事件状态发送至所述h5页面。
39.另一方面,本发明还提出一种基于事件通知机制的消息通讯装置,运行于原生端,所述原生端与h5页面相通信,所述基于事件通知机制的消息通讯装置包括:
40.接收单元,用于接收所述h5页面发送的添加事件观察者请求;
41.提取单元,用于从所述添加事件观察者请求中提取待添加观察者的观察者信息;
42.维护单元,用于将所述观察者信息维护至预设观察者列表中,得到目标观察者列表;
43.监测单元,用于当检测到所述目标观察者列表中的维护观察者的维护数量大于或者等于预设数量时,调用预设函数对所述维护观察者的事件状态进行监测;
44.发送单元,用于当监测到所述事件状态发生变化时,发送所述事件状态至所述h5页面。
45.另一方面,本发明还提出一种原生端,所述原生端包括:
46.存储器,存储计算机可读指令;及
47.处理器,执行所述存储器中存储的计算机可读指令以实现所述基于事件通知机制的消息通讯方法。
48.另一方面,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质中
存储有计算机可读指令,所述计算机可读指令被原生端中的处理器执行以实现所述基于事件通知机制的消息通讯方法。
49.由以上技术方案可以看出,本技术通过所述添加事件观察者请求能够直接获取到所述观察者信息,进而能够提高所述目标观察者列表的生成效率,进一步地,在所述维护观察者的维护数量大于或者等于预设数量时,对所述维护观察者的事件状态进行主动监测,能够减少不必要的监测请求,通过在所述原生端调用预设函数对所述维护观察者的事件状态进行监测,能够避免h5页面占用h5页面与原生端之间的通讯通道,从而能够提高h5页面与原生端之间的交互及时性,进而在所述原生端监测到所述事件状态发生变化时,向所述h5页面主动发送所述事件状态,由于原生端在观察到事件变化时主动推送所述事件状态,减少了h5页面的不必要状态请求,因此能够确保所述事件状态的发送及时性,还能够提高所述事件状态的发送效率。
附图说明
50.图1是本发明基于事件通知机制的消息通讯方法的较佳实施例的流程图。
51.图2是本发明基于事件通知机制的消息通讯装置的较佳实施例的功能模块图。
52.图3是本发明实现基于事件通知机制的消息通讯方法的较佳实施例的原生端的结构示意图。
具体实施方式
53.为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
54.如图1所示,是本发明基于事件通知机制的消息通讯方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
55.所述基于事件通知机制的消息通讯方法可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
56.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
57.所述基于事件通知机制的消息通讯方法应用于一个或者多个原生端中,所述原生端是一种能够按照事先设定或存储的计算机可读指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(application specific integrated circuit,asic)、可编程门阵列(field-programmable gate array,fpga)、数字信号处理器(digital signal processor,dsp)、嵌入式设备等。
58.所述原生端可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(personal digital assistant,pda)、游戏机、交互式网络电视(internet protocol television,iptv)、智能穿戴式设备等。
59.所述原生端可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络原生端、多个网络原生端组成的原生端组或基于云计算(cloud computing)的由大量主机或网络原生端构成的云。
60.所述原生端所在的网络包括,但不限于:互联网、广域网、城域网、局域网、虚拟专用网络(virtual private network,vpn)等。
61.所述原生端与h5页面相通信。
62.s10,接收所述h5页面发送的添加事件观察者请求。
63.在本发明的至少一个实施例中,所述添加事件观察者请求通常是在所述h5页面中存在需要监听的事件时触发生成的。所述添加事件观察者请求中携带有需要监听的待添加观察者的观察者信息。
64.在本发明的至少一个实施例中,所述电子设备接收所述h5页面发送的添加事件观察者请求包括:
65.建立所述原生端与所述h5页面的连接通道;
66.基于所述连接通道,接收所述添加事件观察者请求。
67.其中,所述连接通道可以是长连接。
68.通过建立所述原生端与所述h5页面的长连接,能够避免重复创建所述连接通道所花费的事件,通过所述连接通道,能够快速接收到所述添加事件观察者请求。
69.s11,从所述添加事件观察者请求中提取待添加观察者的观察者信息。
70.在本发明的至少一个实施例中,所述待添加观察者是指需要进行状态监听的事件。
71.所述观察者信息包括,但不限于:所述待添加观察者的事件名、所述待添加观察者的观察者识别、及所述原生端及所述h5页面基于所述待添加观察者的回调函数等。
72.在本发明的至少一个实施例中,所述电子设备从所述添加事件观察者请求中提取待添加观察者的观察者信息包括:
73.获取所述预设观察者列表中的信息标签;
74.解析所述添加事件观察者请求的请求报文,得到所述请求报文携带的报文信息;
75.从所述报文信息中提取出与所述信息标签对应的信息作为所述观察者信息。
76.通过从所述预设观察者列表中获取到的信息标签,进一步从所述报文信息中提取出所述观察者信息,能够避免从所述报文信息中提取到多余的数据信息,同时,通过对所述请求报文的解析,而无需解析整个请求,能够提高所述报文信息的获取效率,从而能够双重提高所述观察者信息的提取效率。
77.s12,将所述观察者信息维护至预设观察者列表中,得到目标观察者列表。
78.在本发明的至少一个实施例中,所述预设观察者列表可以存储有所述h5页面中需要监听的事件,所述预设观察者列表也可以是没有存储任意事件信息的列表。
79.所述目标观察者列表中存储有所述观察者信息。
80.在本发明的至少一个实施例中,所述电子设备将所述观察者信息维护至预设观察者列表中,得到目标观察者列表包括:
81.基于所述预设观察者列表的主键标识从所述信息标签中提取主键标签;
82.从所述观察者信息中获取与所述主键标签对应的信息作为主键信息;
83.拼接所述观察者信息中与所述主键标签不对应的多个信息作为从键信息;
84.将所述主键信息及所述从键信息分别写入所述预设观察者列表中,得到所述目标观察者列表。
85.其中,所述主键信息通常为所述待添加观察者的事件名,所述从键信息包括有所述待添加观察者的观察者识别、及所述回调函数等。
86.通过主从键方式将所述观察者信息存储至列表中,能够避免后续从所述目标观察者列表中快速获取到相关信息,提高事件状态的监测实时性。
87.下述是针对将多个所述观察者信息维护至预设观察者列表的举例,具体请见表1:
[0088][0089]
表1
[0090]
s13,当检测到所述目标观察者列表中的维护观察者的维护数量大于或者等于预设数量时,调用预设函数对所述维护观察者的事件状态进行监测。
[0091]
需要强调的是,为进一步保证上述事件状态的私密和安全性,上述事件状态还可以存储于一区块链的节点中。
[0092]
在本发明的至少一个实施例中,所述预设数量通常设定为1,也就是说,当检测到所述目标观察者列表中存在所述维护观察者的信息时,调用所述预设函数对该维护观察者进行事件状态监测。
[0093]
在本发明的至少一个实施例中,所述电子设备调用预设函数对所述维护观察者的事件状态进行监测包括:
[0094]
将所述维护观察者的观察者识别码写入所述预设函数中,得到观察者监听信息;
[0095]
执行所述监听信息,得到所述维护观察者的执行线程标识;
[0096]
获取与所述执行线程标识的线程用途作为所述事件状态。
[0097]
其中,所述执行线程标识用于唯一表示所述维护观察者的监听线程。
[0098]
所述线程用途是指所述监听线程所执行的具体操作所对应的类别,例如,所述具体操作为注册事件,则所述线程用途为注册,则所述事件状态为注册状态。
[0099]
通过所述预设函数能够快速生成所述观察者监听信息,从而能够提高所述执行线程标识的获取效率,从而提高所述事件状态的监听效率。
[0100]
在本发明的至少一个实施例中,在调用预设函数对所述维护观察者的事件状态进行监测之后,所述方法还包括:
[0101]
获取所述事件状态所对应的监测时刻,并获取所述添加事件观察者请求的接收时刻;
[0102]
基于所述监测时刻及所述接收时刻构建时间区间;
[0103]
获取所述维护观察者在所述时间区间上所对应的历史状态;
[0104]
检测所述历史状态与所述事件状态是否相同;
[0105]
若所述历史状态与所述事件状态不同,则确定所述事件状态发生变化。
[0106]
其中,所述监测时刻是指所述维护观察者处于所述事件状态时所对应的时刻点。
[0107]
所述接收时刻是指所述原生端接收到所述添加事件观察者请求的时刻点。
[0108]
通常来说,所述请求时刻大于所述监测时刻。
[0109]
通过所述监测时刻及所述接收时刻能够准确的构建出所述时间区间,从而能够准确的获取到所述历史状态,提高所述事件状态是否发生变化的检测准确性。
[0110]
s14,当监测到所述事件状态发生变化时,发送所述事件状态至所述h5页面。
[0111]
在本发明的至少一个实施例中,所述电子设备发送所述事件状态至所述h5页面包括:
[0112]
从所述观察者信息中提取回调函数;
[0113]
将所述事件状态写入所述回调函数中,得到反馈响应;
[0114]
基于所述反馈响应信息执行将所述事件状态发送至所述h5页面。
[0115]
通过所述观察者信息能够准确的获取到所述回调函数,从而能够准确的讲所述事件状态发送至所述h5页面。
[0116]
在本发明的至少一个实施例中,所述方法还包括:
[0117]
接收所述h5页面发送的移除事件观察者请求;
[0118]
基于所述移除事件观察者请求中的事件识别码从所述目标观察者列表中定位出待移除观察者的移除信息;
[0119]
基于所述目标观察者列表删除所述移除信息,得到更新观察者列表;
[0120]
当检测到所述更新观察者列表中更新观察者的更新数量小于所述预设数量时,获取预设监测线程的线程状态;
[0121]
基于所述线程状态,控制所述预设监测线程的状态为闲置状态。
[0122]
其中,所述预设监测线程用于监听事件的状态。
[0123]
通过上述实施方式,能够在接收到所述移除事件观察者请求时,准确的生成所述更新观察者列表,进而在所述更新数量小于所述预设数量时,控制所述预设监测线程的状态为闲置状态,能够有效避免所述预设监测线程处于运行状态而导致线程资源的浪费。
[0124]
由以上技术方案可以看出,本技术通过所述添加事件观察者请求能够直接获取到所述观察者信息,进而能够提高所述目标观察者列表的生成效率,进一步地,在所述维护观察者的维护数量大于或者等于预设数量时,对所述维护观察者的事件状态进行主动监测,能够减少不必要的监测请求,通过在所述原生端调用预设函数对所述维护观察者的事件状
态进行监测,能够避免h5页面占用h5页面与原生端之间的通讯通道,从而能够提高h5页面与原生端之间的交互及时性,进而在所述原生端监测到所述事件状态发生变化时,向所述h5页面主动发送所述事件状态,由于原生端在观察到事件变化时主动推送所述事件状态,减少了h5页面的不必要状态请求,因此能够确保所述事件状态的发送及时性,还能够提高所述事件状态的发送效率。
[0125]
如图2所示,是本发明基于事件通知机制的消息通讯装置的较佳实施例的功能模块图。所述基于事件通知机制的消息通讯装置11运行于原生端中,所述基于事件通知机制的消息通讯装置11包括接收单元110、提取单元111、维护单元112、监测单元113、发送单元114、获取单元115、构建单元116、检测单元117、确定单元118、定位单元119、删除单元120及控制单元121。本发明所称的模块/单元是指一种能够被处理器13所获取,并且能够完成固定功能的一系列计算机可读指令段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
[0126]
所述原生端与h5页面相通信。
[0127]
接收单元110接收所述h5页面发送的添加事件观察者请求。
[0128]
在本发明的至少一个实施例中,所述添加事件观察者请求通常是在所述h5页面中存在需要监听的事件时触发生成的。所述添加事件观察者请求中携带有需要监听的待添加观察者的观察者信息。
[0129]
在本发明的至少一个实施例中,所述接收单元110接收所述h5页面发送的添加事件观察者请求包括:
[0130]
建立所述原生端与所述h5页面的连接通道;
[0131]
基于所述连接通道,接收所述添加事件观察者请求。
[0132]
其中,所述连接通道可以是长连接。
[0133]
通过建立所述原生端与所述h5页面的长连接,能够避免重复创建所述连接通道所花费的事件,通过所述连接通道,能够快速接收到所述添加事件观察者请求。
[0134]
提取单元111从所述添加事件观察者请求中提取待添加观察者的观察者信息。
[0135]
在本发明的至少一个实施例中,所述待添加观察者是指需要进行状态监听的事件。
[0136]
所述观察者信息包括,但不限于:所述待添加观察者的事件名、所述待添加观察者的观察者识别、及所述原生端及所述h5页面基于所述待添加观察者的回调函数等。
[0137]
在本发明的至少一个实施例中,所述提取单元111从所述添加事件观察者请求中提取待添加观察者的观察者信息包括:
[0138]
获取所述预设观察者列表中的信息标签;
[0139]
解析所述添加事件观察者请求的请求报文,得到所述请求报文携带的报文信息;
[0140]
从所述报文信息中提取出与所述信息标签对应的信息作为所述观察者信息。
[0141]
通过从所述预设观察者列表中获取到的信息标签,进一步从所述报文信息中提取出所述观察者信息,能够避免从所述报文信息中提取到多余的数据信息,同时,通过对所述请求报文的解析,而无需解析整个请求,能够提高所述报文信息的获取效率,从而能够双重提高所述观察者信息的提取效率。
[0142]
维护单元112将所述观察者信息维护至预设观察者列表中,得到目标观察者列表。
[0143]
在本发明的至少一个实施例中,所述预设观察者列表可以存储有所述h5页面中需要监听的事件,所述预设观察者列表也可以是没有存储任意事件信息的列表。
[0144]
所述目标观察者列表中存储有所述观察者信息。
[0145]
在本发明的至少一个实施例中,所述维护单元112将所述观察者信息维护至预设观察者列表中,得到目标观察者列表包括:
[0146]
基于所述预设观察者列表的主键标识从所述信息标签中提取主键标签;
[0147]
从所述观察者信息中获取与所述主键标签对应的信息作为主键信息;
[0148]
拼接所述观察者信息中与所述主键标签不对应的多个信息作为从键信息;
[0149]
将所述主键信息及所述从键信息分别写入所述预设观察者列表中,得到所述目标观察者列表。
[0150]
其中,所述主键信息通常为所述待添加观察者的事件名,所述从键信息包括有所述待添加观察者的观察者识别、及所述回调函数等。
[0151]
通过主从键方式将所述观察者信息存储至列表中,能够避免后续从所述目标观察者列表中快速获取到相关信息,提高事件状态的监测实时性。
[0152]
下述是针对将多个所述观察者信息维护至预设观察者列表的举例,具体请见表1:
[0153][0154]
表1
[0155]
当检测到所述目标观察者列表中的维护观察者的维护数量大于或者等于预设数量时,监测单元113调用预设函数对所述维护观察者的事件状态进行监测。
[0156]
需要强调的是,为进一步保证上述事件状态的私密和安全性,上述事件状态还可以存储于一区块链的节点中。
[0157]
在本发明的至少一个实施例中,所述预设数量通常设定为1,也就是说,当检测到所述目标观察者列表中存在所述维护观察者的信息时,所述监测单元113调用所述预设函数对该维护观察者进行事件状态监测。
[0158]
在本发明的至少一个实施例中,所述监测单元113调用预设函数对所述维护观察
者的事件状态进行监测包括:
[0159]
将所述维护观察者的观察者识别码写入所述预设函数中,得到观察者监听信息;
[0160]
执行所述监听信息,得到所述维护观察者的执行线程标识;
[0161]
获取与所述执行线程标识的线程用途作为所述事件状态。
[0162]
其中,所述执行线程标识用于唯一表示所述维护观察者的监听线程。
[0163]
所述线程用途是指所述监听线程所执行的具体操作所对应的类别,例如,所述具体操作为注册事件,则所述线程用途为注册,则所述事件状态为注册状态。
[0164]
通过所述预设函数能够快速生成所述观察者监听信息,从而能够提高所述执行线程标识的获取效率,从而提高所述事件状态的监听效率。
[0165]
在本发明的至少一个实施例中,在调用预设函数对所述维护观察者的事件状态进行监测之后,获取单元115获取所述事件状态所对应的监测时刻,并获取所述添加事件观察者请求的接收时刻;
[0166]
构建单元116基于所述监测时刻及所述接收时刻构建时间区间;
[0167]
所述获取单元115获取所述维护观察者在所述时间区间上所对应的历史状态;
[0168]
检测单元117检测所述历史状态与所述事件状态是否相同;
[0169]
若所述历史状态与所述事件状态不同,则确定单元118确定所述事件状态发生变化。
[0170]
其中,所述监测时刻是指所述维护观察者处于所述事件状态时所对应的时刻点。
[0171]
所述接收时刻是指所述原生端接收到所述添加事件观察者请求的时刻点。
[0172]
通常来说,所述请求时刻大于所述监测时刻。
[0173]
通过所述监测时刻及所述接收时刻能够准确的构建出所述时间区间,从而能够准确的获取到所述历史状态,提高所述事件状态是否发生变化的检测准确性。
[0174]
当监测到所述事件状态发生变化时,发送单元114发送所述事件状态至所述h5页面。
[0175]
在本发明的至少一个实施例中,所述发送单元114发送所述事件状态至所述h5页面包括:
[0176]
从所述观察者信息中提取回调函数;
[0177]
将所述事件状态写入所述回调函数中,得到反馈响应;
[0178]
基于所述反馈响应信息执行将所述事件状态发送至所述h5页面。
[0179]
通过所述观察者信息能够准确的获取到所述回调函数,从而能够准确的讲所述事件状态发送至所述h5页面。
[0180]
在本发明的至少一个实施例中,所述接收单元110接收所述h5页面发送的移除事件观察者请求;
[0181]
定位单元119基于所述移除事件观察者请求中的事件识别码从所述目标观察者列表中定位出待移除观察者的移除信息;
[0182]
删除单元120基于所述目标观察者列表删除所述移除信息,得到更新观察者列表;
[0183]
当检测到所述更新观察者列表中更新观察者的更新数量小于所述预设数量时,所述获取单元115获取预设监测线程的线程状态;
[0184]
控制单元121基于所述线程状态,控制所述预设监测线程的状态为闲置状态。
[0185]
其中,所述预设监测线程用于监听事件的状态。
[0186]
通过上述实施方式,能够在接收到所述移除事件观察者请求时,准确的生成所述更新观察者列表,进而在所述更新数量小于所述预设数量时,控制所述预设监测线程的状态为闲置状态,能够有效避免所述预设监测线程处于运行状态而导致线程资源的浪费。
[0187]
由以上技术方案可以看出,本技术通过所述添加事件观察者请求能够直接获取到所述观察者信息,进而能够提高所述目标观察者列表的生成效率,进一步地,在所述维护观察者的维护数量大于或者等于预设数量时,对所述维护观察者的事件状态进行主动监测,能够减少不必要的监测请求,通过在所述原生端调用预设函数对所述维护观察者的事件状态进行监测,能够避免h5页面占用h5页面与原生端之间的通讯通道,从而能够提高h5页面与原生端之间的交互及时性,进而在所述原生端监测到所述事件状态发生变化时,向所述h5页面主动发送所述事件状态,由于原生端在观察到事件变化时主动推送所述事件状态,减少了h5页面的不必要状态请求,因此能够确保所述事件状态的发送及时性,还能够提高所述事件状态的发送效率。
[0188]
如图3所示,是本发明实现基于事件通知机制的消息通讯方法的较佳实施例的原生端的结构示意图。
[0189]
在本发明的一个实施例中,所述原生端1包括,但不限于,存储器12、处理器13,以及存储在所述存储器12中并可在所述处理器13上运行的计算机可读指令,例如基于事件通知机制的消息通讯程序。
[0190]
本领域技术人员可以理解,所述示意图仅仅是原生端1的示例,并不构成对原生端1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述原生端1还可以包括输入输出设备、网络接入设备、总线等。
[0191]
所述处理器13可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器13是所述原生端1的运算核心和控制中心,利用各种接口和线路连接整个原生端1的各个部分,及执行所述原生端1的操作系统以及安装的各类应用程序、程序代码等。
[0192]
示例性的,所述计算机可读指令可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该计算机可读指令段用于描述所述计算机可读指令在所述原生端1中的执行过程。例如,所述计算机可读指令可以被分割成接收单元110、提取单元111、维护单元112、监测单元113、发送单元114、获取单元115、构建单元116、检测单元117、确定单元118、定位单元119、删除单元120及控制单元121。
[0193]
所述存储器12可用于存储所述计算机可读指令和/或模块,所述处理器13通过运行或执行存储在所述存储器12内的计算机可读指令和/或模块,以及调用存储在存储器12内的数据,实现所述原生端1的各种功能。所述存储器12可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、
图像播放功能等)等;存储数据区可存储根据原生端的使用所创建的数据等。存储器12可以包括非易失性和易失性存储器,例如:硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他存储器件。
[0194]
所述存储器12可以是原生端1的外部存储器和/或内部存储器。进一步地,所述存储器12可以是具有实物形式的存储器,如内存条、tf卡(trans-flash card)等等。
[0195]
所述原生端1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一计算机可读存储介质中,该计算机可读指令在被处理器执行时,可实现上述各个方法实施例的步骤。
[0196]
其中,所述计算机可读指令包括计算机可读指令代码,所述计算机可读指令代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机可读指令代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)。
[0197]
本发明所指区块链是分布式基于事件通知机制的消息通讯、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
[0198]
结合图1,所述原生端1中的所述存储器12存储计算机可读指令实现一种基于事件通知机制的消息通讯方法,所述处理器13可执行所述计算机可读指令从而实现:
[0199]
接收h5页面发送的添加事件观察者请求;
[0200]
从所述添加事件观察者请求中提取待添加观察者的观察者信息;
[0201]
将所述观察者信息维护至预设观察者列表中,得到目标观察者列表;
[0202]
当检测到所述目标观察者列表中的维护观察者的维护数量大于或者等于预设数量时,调用预设函数对所述维护观察者的事件状态进行监测;
[0203]
当监测到所述事件状态发生变化时,发送所述事件状态至所述h5页面。
[0204]
具体地,所述处理器13对上述计算机可读指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
[0205]
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0206]
所述计算机可读存储介质上存储有计算机可读指令,其中,所述计算机可读指令被处理器13执行时用以实现以下步骤:
[0207]
接收h5页面发送的添加事件观察者请求;
[0208]
从所述添加事件观察者请求中提取待添加观察者的观察者信息;
[0209]
将所述观察者信息维护至预设观察者列表中,得到目标观察者列表;
[0210]
当检测到所述目标观察者列表中的维护观察者的维护数量大于或者等于预设数量时,调用预设函数对所述维护观察者的事件状态进行监测;
[0211]
当监测到所述事件状态发生变化时,发送所述事件状态至所述h5页面。
[0212]
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0213]
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0214]
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
[0215]
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。所述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
[0216]
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

技术特征:
1.一种基于事件通知机制的消息通讯方法,应用于原生端,所述原生端与h5页面相通信,其特征在于,所述基于事件通知机制的消息通讯方法包括:接收所述h5页面发送的添加事件观察者请求;从所述添加事件观察者请求中提取待添加观察者的观察者信息;将所述观察者信息维护至预设观察者列表中,得到目标观察者列表;当检测到所述目标观察者列表中的维护观察者的维护数量大于或者等于预设数量时,调用预设函数对所述维护观察者的事件状态进行监测;当监测到所述事件状态发生变化时,发送所述事件状态至所述h5页面。2.如权利要求1所述的基于事件通知机制的消息通讯方法,其特征在于,所述方法还包括:接收所述h5页面发送的移除事件观察者请求;基于所述移除事件观察者请求中的事件识别码从所述目标观察者列表中定位出待移除观察者的移除信息;基于所述目标观察者列表删除所述移除信息,得到更新观察者列表;当检测到所述更新观察者列表中更新观察者的更新数量小于所述预设数量时,获取预设监测线程的线程状态;基于所述线程状态,控制所述预设监测线程的状态为闲置状态。3.如权利要求1所述的基于事件通知机制的消息通讯方法,其特征在于,所述从所述添加事件观察者请求中提取待添加观察者的观察者信息包括:获取所述预设观察者列表中的信息标签;解析所述添加事件观察者请求的请求报文,得到所述请求报文携带的报文信息;从所述报文信息中提取出与所述信息标签对应的信息作为所述观察者信息。4.如权利要求3所述的基于事件通知机制的消息通讯方法,其特征在于,所述将所述观察者信息维护至预设观察者列表中,得到目标观察者列表包括:基于所述预设观察者列表的主键标识从所述信息标签中提取主键标签;从所述观察者信息中获取与所述主键标签对应的信息作为主键信息;拼接所述观察者信息中与所述主键标签不对应的多个信息作为从键信息;将所述主键信息及所述从键信息分别写入所述预设观察者列表中,得到所述目标观察者列表。5.如权利要求1所述的基于事件通知机制的消息通讯方法,其特征在于,所述调用预设函数对所述维护观察者的事件状态进行监测包括:将所述维护观察者的观察者识别码写入所述预设函数中,得到观察者监听信息;执行所述监听信息,得到所述维护观察者的执行线程标识;获取与所述执行线程标识的线程用途作为所述事件状态。6.如权利要求1所述的基于事件通知机制的消息通讯方法,其特征在于,在调用预设函数对所述维护观察者的事件状态进行监测之后,所述方法还包括:获取所述事件状态所对应的监测时刻,并获取所述添加事件观察者请求的接收时刻;基于所述监测时刻及所述接收时刻构建时间区间;获取所述维护观察者在所述时间区间上所对应的历史状态;
检测所述历史状态与所述事件状态是否相同;若所述历史状态与所述事件状态不同,则确定所述事件状态发生变化。7.如权利要求1所述的基于事件通知机制的消息通讯方法,其特征在于,所述发送所述事件状态至所述h5页面包括:从所述观察者信息中提取回调函数;将所述事件状态写入所述回调函数中,得到反馈响应;基于所述反馈响应信息执行将所述事件状态发送至所述h5页面。8.一种基于事件通知机制的消息通讯装置,运行于原生端,所述原生端与h5页面相通信,其特征在于,所述基于事件通知机制的消息通讯装置包括:接收单元,用于接收所述h5页面发送的添加事件观察者请求;提取单元,用于从所述添加事件观察者请求中提取待添加观察者的观察者信息;维护单元,用于将所述观察者信息维护至预设观察者列表中,得到目标观察者列表;监测单元,用于当检测到所述目标观察者列表中的维护观察者的维护数量大于或者等于预设数量时,调用预设函数对所述维护观察者的事件状态进行监测;发送单元,用于当监测到所述事件状态发生变化时,发送所述事件状态至所述h5页面。9.一种原生端,其特征在于,所述原生端包括:存储器,存储有计算机可读指令;及处理器,执行所述存储器中存储的计算机可读指令以实现如权利要求1至7中任意一项所述的基于事件通知机制的消息通讯方法。10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有计算机可读指令,所述计算机可读指令被原生端中的处理器执行以实现如权利要求1至7中任意一项所述的基于事件通知机制的消息通讯方法。

技术总结
本发明涉及智能监控,提供一种基于事件通知机制的消息通讯方法及相关设备。该方法接收H5页面发送的添加事件观察者请求;从所述添加事件观察者请求中提取待添加观察者的观察者信息;将所述观察者信息维护至预设观察者列表中,得到目标观察者列表;当检测到所述目标观察者列表中的维护观察者的维护数量大于或者等于预设数量时,调用预设函数对所述维护观察者的事件状态进行监测;当监测到所述事件状态发生变化时,发送所述事件状态至所述H5页面。此外,本发明还涉及区块链技术,所述事件状态可存储于区块链中。可存储于区块链中。可存储于区块链中。


技术研发人员:贺超
受保护的技术使用者:中国平安财产保险股份有限公司
技术研发日:2022.06.21
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-9965.html

最新回复(0)