一种实时数据通信方法技术

技术编号:35778342 阅读:12 留言:0更新日期:2022-12-01 14:22
本发明专利技术一种实时数据通信方法,所述方法涉及:作为数据终端的数据生产者,其作用在于产生数据;作为服务器的数据处理者,其作用在于接收数据生产者的数据并推送至数据消费者;作为客户端的数据消费者,其作用在于接收数据处理者推送的数据;实时数据更新前,数据消费者主动向数据处理者建立连接并注册所需数据信息,数据消费者注册成功之后,数据处理者将接收到的数据生产者的实时数据信息推送至数据消费者。采用本发明专利技术一种实时数据通信方法后,将使得实时数据更新更为高效且占用服务资源更少。更少。更少。

【技术实现步骤摘要】
一种实时数据通信方法


[0001]本专利技术涉及一种实时数据通讯方法,属于通讯


技术介绍

[0002]目前,随着数据业务的不断发展,如大屏实时数据展示服务、数据服务异常监控服务等应用场景,对于数据的实时性要求较高,以便实时更新数据使得消费者了解最新的数据状态或服务状态等信息。常规的实时更新数据方式为:通过前端轮询方式进行;但是以定时器固定时间方式发起轮询方式已经无法满足大数据情况下用户对于数据高实时性的性能要求;而且轮询方式也无法及时发现断网离线或移除设备的终端设备,从而导致网络带宽被占用,影响其他终端设备的数据更新网速,导致用户体验较差。为此,亟需一种能够解决上述问题的实时数据通信方法。

技术实现思路

[0003]本专利技术的目的在于克服上述不足,提供一种实时数据更新更为高效且占用资源少的通信方法。
[0004]本专利技术的目的是这样实现的:一种实时数据通信方法, 所述方法涉及:作为数据终端的数据生产者,其作用在于产生数据;作为服务器的数据处理者,其作用在于接收数据生产者的数据并推送至数据消费者;作为客户端的数据消费者,其作用在于接收数据处理者推送的数据;实时数据更新前,数据消费者主动向数据处理者建立连接并注册所需数据信息,数据消费者注册成功之后,数据处理者将接收到的数据生产者的实时数据信息推送至数据消费者。
[0005]优选的,数据消费者与数据处理者之间建立连接并注册的过程为:S1、数据消费者通过网络与数据处理者的WebSocket服务建立连接;S2、数据消费者向数据处理者的WebSocket服务发送注册消息进行注册;S3、数据消费者向数据处理者的WebSocke服务发送心跳信息以便数据处理者的实时知晓数据消费者是否在线。
[0006]优选的,数据处理者向数据消费者推送实时数据的更新过程为:数据生产者通过RocketMQ异步消息发送方式将实时数据推送到数据处理者的WebSocket服务保存;或者数据生产者通过Restful调用接口的方式将数据推送到Rest服务,再由Rest服务将数据通过RocketMQ异步消息发送方式推送到数据处理者的WebSocket服务中保存。
[0007]优选的,步骤S2中,若步骤S1中连接建立后的预定时间内数据消费者未向数据处理者发送注册信息,数据处理者的WebSocket服务自动关闭与对应的数据消费者的连接;步骤S3中,若步骤S2中注册成功后的预定时间内未向数据处理者发送心跳信息,数据处理者
的WebSocket服务关闭与对应的数据消费者之间的连接。
[0008]优选的,在步骤S2中:数据消费者注册时通过数据包内的serviceName、group与listens字段进行告知数据处理者的WebSocket服务所需数据类型,serviceName标识监听的服务类型名称、group标识监听的场景类型、listens标识复杂情况下监听的场景配置。
[0009]优选的,数据消费者在未完成步骤S2发送注册消息的前提下,进行步骤S3心跳信息的发送,数据处理者强制关闭与该数据消费者之间的连接。
[0010]与现有技术相比,本专利技术的有益效果是:本专利技术与常规更新方式相比无需前端自动轮询,终端服务仅需连接并注册到WebSocket服务中,即可实时接收变更的数据信息。同时,通过不断的优化终端对于数据监听的规则,通过serviceName与group和listens三个规则变量满足绝大部分实时数据场景;并且在注册时在注册信息中写入所需获取数据信息的类型,从而可以智能的将不同的数据推送到不同的前端服务;同时,通过结合Redis等缓存服务的方式及时断开没有数据连接的客户端以及恶意连接的客户端,提高服务的可用信息;最后WebSocket服务可集群部署,通过集群部署的方式将服务的可用性提高到99.9%,极大的提高了相应速度。
附图说明
[0011]图1为本专利技术一种实时数据通信方法的拓扑示意图。
[0012]图2为本专利技术中数据生产者和数据处理者之间创建连接的示意图。
[0013]图3为本专利技术中数据生产者向数据处理者发送注册信息的示意图。
[0014]图4为本专利技术中数据生产者向数据处理者发送心跳数据的示意图。
具体实施方式
[0015]参见图1~4,本专利技术涉及的一种实时数据通信方法,通过Netty服务做为底层支撑,结合epool和Reactors 线程模型,实现WebSocket实时数据通信服务,通过结合Redis的缓存存储以及Redis的过期key监听功能实现异常客户端的及时关闭以便回收资源,另外通过RocketMQ的异步消息队列,并以BROADCASTING模式实现集群下,多服务可同时读取的方式,保证数据能推送到所有监听了该类型数据的客户端。
[0016]具体的讲:本专利技术实时数据通信方法为基于Netty的WebSocket实时数据通信服务,并结合Redis和RocketMQ等中间件,提高WebSocket的服务的可用性。
[0017]本专利技术实时数据通信方法的硬件基础提供三种角色:数据生产者、数据处理者和数据消费者,数据生产者通过网络与数据处理者通讯相连,数据处理者通过网络与数据消费者通讯相连。
[0018]一、数据生产者,即数据创建者,提供数据的角色,该角色可以为远程服务器上运行的某一服务,或者是其他智能终端设备(如PAD设备终端或者Andriod终端等)。数据生产者的数据来源都是基于本身的业务服务数据,或者持有智能终端设备的人员手动操作获取的实时数据。
[0019]二、数据处理者,即接收数据生产者的数据后运行于处理系统(如远程服务器)上的WebSocket服务,用于对数据进行处理和中转。同时,通过WebSocket服务的集群部署,结
合Netty的底层epool和Reactors 多线程模型,提高服务的高并发。
[0020]三、数据消费者,即数据接收终端,如Andriod设备终端、PAD终端或者浏览器大屏终端等。
[0021]实时数据更新前,数据消费者需要通过下述步骤实现与数据处理者的连接:S1、数据消费者通过网络与数据处理者的WebSocket服务建立连接;参见图2。
[0022]S2、数据消费者向数据处理者的WebSocket服务发送注册消息,注册通过后才能进行实时数据的更新接收;且步骤S1中连接建立后若5秒内数据消费者未向数据处理者发送注册信息,数据处理者的WebSocket服务自动关闭对应的数据消费者的连接。本步骤中建立连接之后5秒内要求作为客户端的数据消费者发送注册信息,是为了防止恶意数据消费者侵占作为服务端的数据处理者的资源,导致服务不可用;参见图3。
[0023]S3、数据消费者向数据处理者的WebSocke服务发送心跳信息以便数据处理者的实时知晓数据消费者是否在线;且步骤S2中发送注册信息后,若数据消费者15分钟内未向数据处理者发送心跳信息,数据处理者的WebSocket服务关闭对应的数据消费者的连接。本步骤中通过注册后要求作为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实时数据通信方法, 所述方法涉及:作为数据终端的数据生产者,其作用在于产生数据;作为服务器的数据处理者,其作用在于接收数据生产者的数据并推送至数据消费者;作为客户端的数据消费者,其作用在于接收数据处理者推送的数据;其特征在于:实时数据更新前,数据消费者主动向数据处理者建立连接并注册所需数据信息,数据消费者注册成功之后,数据处理者将接收到的数据生产者的实时数据信息推送至数据消费者。2.根据权利要求1所述一种实时数据通信方法,其特征在于:数据消费者与数据处理者之间建立连接并注册的过程为:S1、数据消费者通过网络与数据处理者的WebSocket服务建立连接;S2、数据消费者向数据处理者的WebSocket服务发送注册消息进行注册;S3、数据消费者向数据处理者的WebSocke服务发送心跳信息以便数据处理者的实时知晓数据消费者是否在线。3.根据权利要求2所述一种实时数据通信方法,其特征在于:数据处理者向数据消费者推送实时数据的更新过程为:数据生产者通过RocketMQ异步消息发送方式将实时数据推送到数据处理者的WebSocket服务保存;或者数据生产者通过Restful调用接口的方式将...

【专利技术属性】
技术研发人员:汪恭财刘冠宇平项华
申请(专利权)人:江阴市富仁智能科技有限公司
类型:发明
国别省市:

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

1