一种动态数据的订阅和推送方法及系统技术方案

技术编号:36158142 阅读:63 留言:0更新日期:2022-12-31 20:05
本发明专利技术公开一种动态数据的订阅和推送方法,涉及数据应用技术领域,包括:用户通过客户端向订阅网关发起数据订阅请求;订阅网关接收到请求后,首先判断当前用户是否具有订阅权限,然后判断是否已经超过当前用户允许的最大订阅连接数,最后根据登陆客户端用户的QoS选择服务端,被选中的服务端通过websocket与客户端建立连接;连接成功后,服务端根据请求向客户端推送数据;客户端接收数据,首先判断客户端当前数据列表中是否已经存在该数据,若有则更新,若无则新增,然后判断该数据的类型,并根据判断结果操作客户端当前数据列表。本发明专利技术还提供一种动态数据的订阅和推送系统,其用于实现前述方法,可以提高数据订阅和推送的安全性,灵活控制客户端的订阅。灵活控制客户端的订阅。灵活控制客户端的订阅。

【技术实现步骤摘要】
一种动态数据的订阅和推送方法及系统


[0001]本专利技术涉及数据应用
,具体的说是一种动态数据的订阅和推送方法及系统。

技术介绍

[0002]数据即资产、数据即价值、数据即服务等理念不断深入人心。随着企业对数据越来越重视,不断涌现出一些数据应用系统。
[0003]当前数据应用系统中的数据订阅和推送方法通常采用定时任务拉取或者websocket推动方式。其中,定时任务拉取实现方式存在数据滞后性,尤其是对于动态变化的数据,实时性是一个重要指标;而对于Websocket推送的实现方式,目前实现方式缺乏对订阅连接管理、订阅安全性的灵活的控制,部门实现方式采用全量数据推送,效率低下。

技术实现思路

[0004]本专利技术针对目前技术发展的需求和不足之处,提供一种动态数据的订阅和推送方法及系统。
[0005]首先,本专利技术提供一种动态数据的订阅和推送方法,解决上述技术问题采用的技术方案如下:
[0006]一种动态数据的订阅和推送方法,包括如下步骤:
[0007]用户通过客户端向订阅网关发起数据订阅请求;
[0008]订阅网关接收到请求后,首先判断当前用户是否具有订阅权限,然后判断是否已经超过当前用户允许的最大订阅连接数,最后根据登陆客户端用户的QoS从所有服务端中选择一个满足当前用户QoS的服务端,被选中的服务端通过websocket与客户端建立连接;
[0009]服务端与客户端建立连接之后,服务端根据请求向客户端推送数据;
[0010]客户端收到数据后,首先判断客户端当前数据列表中是否已经存在该数据,若有则更新,若无则新增,然后判断该数据的类型,并根据判断结果操作客户端当前数据列表。
[0011]可选的,用户通过客户端向订阅网关发起数据订阅请求,服务端根据请求向客户端推送数据,其中,所述数据为动态数据,具有如下特征:
[0012]具有明显的时变性;
[0013]属于特定的所有者;
[0014]数据的所有者在不同时刻可能不同;
[0015]具有属性表征数据的所有者变为当前数据所有者的时刻以及属于当前者的累计时长。
[0016]可选的,用户通过客户端向订阅网关发起数据订阅请求后,
[0017]客户端生成唯一的websocket连接ID,标识本次连接,
[0018]客户端将websocket连接ID放到连接请求的URL路径参数中,
[0019]客户端从用户认证中心keycloak中获取用户登录token,并将用户登录token放到
websocket的协议头中,
[0020]客户端利用websocket的协议头传递客户端认证信息,认证信息中包含当前客户端订阅数据时使用的用户信息。
[0021]进一步可选的,用户通过客户端向订阅网关发起数据订阅请求,被选中的服务端通过websocket与客户端建立连接,这一过程中,
[0022]客户端向所有服务端分别发送心跳包,所有服务端接收心跳包,并利用心跳包接收时间和心跳包发送时间的时延大小确定客户端和服务端之间的网络通信质量,
[0023]订阅网关根据当前客户端用户的QoS,以及客户端和服务端的网络通信质量,从所有服务端中选择一个满足当前用户QoS的服务端;
[0024]同一个服务端与多个客户端建立连接后,服务端根据请求优先将数据推送到QoS等级高的用户客户端上。
[0025]可选的,服务端和客户端建立连接之后,服务端通知订阅网关,订阅网关将对应用户已经建立的连接数加1;
[0026]服务端和客户端断开连接之后,服务端通知订阅网关,订阅网关将对应用户已经建立的连接数减1。
[0027]可选的,客户端探测到和服务端的网络连接中断之后,在websocket的close事件处理程序中启动一个定时器,用来重新发起订阅连接建立请求,请求成功后,客户端通过订阅网关重新向服务端请求订阅数据的全量数据,以避免由于采用增量推送导致的网络中断后部分数据丢失或者和服务端数据状态不一致。
[0028]其次,本专利技术提供一种动态数据的订阅和推送系统,解决上述技术问题采用的技术方案如下:
[0029]一种动态数据的订阅和推送系统,其结构包括:
[0030]客户端,一方面用于向订阅网关发起数据订阅请求,另一方面用于接收服务端的推送数据,并首先判断客户端当前数据列表中是否已经存在该数据,若有则更新,若无则新增,然后判断该数据的类型,并根据判断结果操作客户端当前数据列表;
[0031]订阅网关,用于接收用户发起的请求,随后判断当前用户是否具有订阅权限,判断是否已经超过当前用户允许的最大订阅连接数,最后根据登陆客户端用户的QoS从所有服务端中选择一个满足当前用户QoS的服务端,被选中的服务端通过websocket与客户端建立连接;
[0032]服务端,用于与客户端建立连接,并在连接成功后向客户端推送数据。
[0033]可选的,用户通过客户端向订阅网关发起数据订阅请求,服务端根据请求向客户端推送数据,其中,所述数据为动态数据,具有如下特征:
[0034]具有明显的时变性;
[0035]属于特定的所有者;
[0036]数据的所有者在不同时刻可能不同;
[0037]具有属性表征数据的所有者变为当前数据所有者的时刻以及属于当前者的累计时长。
[0038]可选的,用户通过客户端向订阅网关发起数据订阅请求,被选中的服务端通过websocket与客户端建立连接,这一过程中,
[0039](1)客户端生成唯一的websocket连接ID,标识本次连接,
[0040]客户端将websocket连接ID放到连接请求的URL路径参数中,
[0041]客户端从用户认证中心keycloak中获取用户登录token,并将用户登录token放到websocket的协议头中,
[0042]客户端利用websocket的协议头传递客户端认证信息,认证信息中包含当前客户端订阅数据时使用的用户信息;
[0043](2)客户端向所有服务端分别发送心跳包,所有服务端接收心跳包,并利用心跳包接收时间和心跳包发送时间的时延大小确定客户端和服务端之间的网络通信质量,
[0044]订阅网关根据当前客户端用户的QoS,以及客户端和服务端的网络通信质量,从所有服务端中选择一个满足当前用户QoS的服务端;
[0045](3)同一个服务端与多个客户端建立连接后,服务端根据请求优先将数据推送到QoS等级高的用户客户端上。
[0046]可选的,客户端探测到和服务端的网络连接中断之后,在websocket的close事件处理程序中启动一个定时器,用来重新发起订阅连接建立请求,请求成功后,客户端通过订阅网关重新向服务端请求订阅数据的全量数据,以避免由于采用增量推送导致的网络中断后部分数据丢失或者和服务端数据状态不一致。
[0047]本专利技术的一种动态数据的订阅和推本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种动态数据的订阅和推送方法,其特征在于,包括如下步骤:用户通过客户端向订阅网关发起数据订阅请求;订阅网关接收到请求后,首先判断当前用户是否具有订阅权限,然后判断是否已经超过当前用户允许的最大订阅连接数,最后根据登陆客户端用户的QoS从所有服务端中选择一个满足当前用户QoS的服务端,被选中的服务端通过websocket与客户端建立连接;服务端与客户端建立连接之后,服务端根据请求向客户端推送数据;客户端收到数据后,首先判断客户端当前数据列表中是否已经存在该数据,若有则更新,若无则新增,然后判断该数据的类型,并根据判断结果操作客户端当前数据列表。2.根据权利要求1所述的一种动态数据的订阅和推送方法,其特征在于,用户通过客户端向订阅网关发起数据订阅请求,服务端根据请求向客户端推送数据,其中,所述数据为动态数据,具有如下特征:具有明显的时变性;属于特定的所有者;数据的所有者在不同时刻可能不同;具有属性表征数据的所有者变为当前数据所有者的时刻以及属于当前者的累计时长。3.根据权利要求1所述的一种动态数据的订阅和推送方法,其特征在于,用户通过客户端向订阅网关发起数据订阅请求的过程中:客户端生成唯一的websocket连接ID,标识本次连接,客户端将websocket连接ID放到连接请求的URL路径参数中,客户端从用户认证中心keycloak中获取用户登录token,并将用户登录token放到websocket的协议头中,客户端利用websocket的协议头传递客户端认证信息,认证信息中包含当前客户端订阅数据时使用的用户信息。4.根据权利要求3所述的一种动态数据的订阅和推送方法,其特征在于,用户通过客户端向订阅网关发起数据订阅请求,被选中的服务端通过websocket与客户端建立连接,这一过程中,客户端向所有服务端分别发送心跳包,所有服务端接收心跳包,并利用心跳包接收时间和心跳包发送时间的时延大小确定客户端和服务端之间的网络通信质量,订阅网关根据当前客户端用户的QoS,以及客户端和服务端的网络通信质量,从所有服务端中选择一个满足当前用户QoS的服务端;同一个服务端与多个客户端建立连接后,服务端根据请求优先将数据推送到QoS等级高的用户客户端上。5.根据权利要求1所述的一种动态数据的订阅和推送方法,其特征在于,服务端和客户端建立连接之后,服务端通知订阅网关,订阅网关将对应用户已经建立的连接数加1;服务端和客户端断开连接之后,服务端通知订阅网关,订阅网关将对应用户已经建立的连接数减1。6.根据权利要求1所述的一种动态数据的订阅和推送方法,其特征在于,客户端探测到和服务端的网络连接中断之后,在websocket的close事件处理程序中启动一个定时器,用来重新发起订阅连接建立请求,请求...

【专利技术属性】
技术研发人员:孙光涛张永皋
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1