CN103780681A - 一种高实时性Web应用系统及其数据实时推送方法 - Google Patents
一种高实时性Web应用系统及其数据实时推送方法 Download PDFInfo
- Publication number
- CN103780681A CN103780681A CN201410004933.8A CN201410004933A CN103780681A CN 103780681 A CN103780681 A CN 103780681A CN 201410004933 A CN201410004933 A CN 201410004933A CN 103780681 A CN103780681 A CN 103780681A
- Authority
- CN
- China
- Prior art keywords
- data
- service module
- client
- message
- interface
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种高实时性Web应用系统及其数据实时推送方法,所述系统中消息投递接口、数据推送服务模块和DCN监听服务模块的承载协议为WebSocket协议;数据推送服务模块和DCN监听服务模块采用Node.js实现;客户端可将需要发送的数据或消息发送至数据推送服务模块用于发送至其他客户端;消息投递接口用于外部数据或消息的输入接口;DCN监听服务模块用于获得Oracal数据库的数据变化信息;所述数据实时推送方法包括了外部数据的推送、客户单之间的数据推送以及Oracal数据库变化数据的推送。本发明使得整个Web应用系统完成数据的实时推送和广播,并且结构简单,易于扩展。
Description
技术领域
本发明涉及一种高实时性Web应用系统及其数据实时推送方法。
背景技术
目前,开发人员想实现一些实时的Web应用最常用的为Polling和Comet技术,而Comet技术实际上是轮询技术的改进,又可细分为两种实现方式,一种是长轮询机制,一种称为流技术。Polling是最早的一种实现实时Web应用的方案。客户端以一定的时间间隔向服务端发出请求,以频繁请求的方式来保持客户端和服务器端的同步;长轮询是对定时轮询的改进和提高,目地是为了降低无效的网络传输,当服务器端没有数据更新的时候,连接会保持一段时间周期直到数据或状态改变或者时间过期,通过这种机制来减少无效的客户端和服务器间的交互;流技术方案通常就是在客户端的页面使用一个隐藏的窗口向服务端发出一个长连接的请求,服务器端接到这个请求后作出回应并不断更新连接状态以保证客户端和服务器端的连接不过期,通过这种机制可以将服务器端的信息源源不断地推向客户端。然而,以上这些技术都不是真正的实时技术,在实际的应用中,开发人员往往需要构造两个HTTP连接来模拟客户端和服务器之间的双向通讯,一个连接用来处理客户端到服务器端的数据传输,一个连接用来处理服务器端到客户端的数据传输,这不可避免地增加了编程实现的复杂度,也增加了服务器端的负载,制约了应用系统的扩展性。
发明内容
发明目的:本发明的发明目的是针对现有技术的不足而公开了一种高实时性Web应用系统,使得整个Web应用系统完成数据的实时推送和广播,并且结构简单易于扩展。
技术方案:为了实现发明的发明目的,本发明公开了一种高实时性Web应用系统,包括客户端、消息投递接口、数据推送服务模块、客户端会话管理模块以及DCN监听服务模块;消息投递接口、数据推送服务模块和DCN监听服务模块的承载协议为WebSocket协议;数据推送服务模块和DCN监听服务模块采用Node.js实现;客户端可将需要发送的数据或消息发送至数据推送服务模块用于发送至其他客户端;消息投递接口用于外部数据或消息的输入接口;DCN监听服务模块用于获得Oracal数据库的数据变化信息;数据推送服务模块用于将消息投递接口、DCN监听服务模块以及客户端广播请求的数据或消息推送到所有客户端;客户端会话管理模块用于客户端网络连接关系的管理及监测。
作为优选,为了使得客户端之间的数据信息实现双向实时性同步并且保证数据信息的安全性,每个接入会话接入接口的客户端都生成一个WebSocket双向长连接会话,这些会话由客户端会话管理模块管理及监测。
作为优选,为了使得消息投递接口可以通过简单的HTTP请求就能实现广播消息的投递,所述消息投递接口为采用Node.js实现的一个WebServer服务。
作为优选,为了提高监听效率,DCN监听服务模块设有定时器,定时器到达时DCN监听服务模块将Oracal数据库的数据变化信息发送至数据推送服务模块。
为了进一步实现发明目的,本发明还公开了一种使用上述Web应用系统数据实时推送方法,包括以下部分:
(1)当有外部消息或者数据到达消息投递接口,消息投递接口通过数据推送服务模块将外部消息或者数据推送至客户端;
(2)当有一个客户端请求推送消息或者数据至其他客户端,该客户端就会通过会话接入接口进行数据或者消息的推送;
(3)当Oracal数据库的数据发生变化,DCN监听服务模块则会通过数据推送服务模块将该变化数据提送至各客户端。
有益效果:本发明与现有技术相比:采用新兴的HTML5标准之一WebSocket技术,高效的异步中间件Nodejs技术,结合Oracle数据库的DCN技术,实现了一套完整的B/S三层Web应用数据实时推送和广播架构,使得整个Web应用系统完成数据的实时推送和广播,并且结构简单易于扩展。
附图说明
图1为本发明Web应用系统的结构图;
图2为本发明客户端会话接入及会话管理的示意图;
图3为本发明外部消息源向客户端实时推送或广播数据示意图;
图4为本发明一个客户端向其他客户端实时广播数据示意图;
图5为DCN监听服务模块向客户端实时广播数据示意图;
图6为DCN监听服务模块的监听示意图。
具体实施方式
下面结合图对本发明作更进一步的说明。
如图1所示,Web应用系统由消息投递接口、数据推送服务模块、客户端会话管理模块、DCN监听服务模块以及会话接入接口组成;消息投递接口、数据推送服务模块、DCN监听服务模块和会话接入接口的承载协议为WebSocket协议;数据推送服务模块和DCN监听服务模块采用Node.js实现;客户端可将需要发送的数据或消息发送至数据推送服务模块用于发送至其他客户端;消息投递接口用于外部数据或消息的输入接口;DCN监听服务模块用于获得Oracal数据库的数据变化信息;数据推送服务模块用于将消息投递接口、DCN监听服务模块以及客户端广播请求的数据或消息推送到所有客户端;客户端会话管理模块用于客户端网络连接关系的管理及监测;会话接入接口可监听指定的网络端口,并且每个接入会话接入接口的客户端都生成一个WebSocket双向长连接会话,这些会话由客户端会话管理模块管理及监测。
如图2所示,当有客户端接入时则会添加会话并且更新客户端会话管理模块的会话列表;当有连接超时或者连接断开时则会删除会话并且更新客户端会话管理模块的会话列表。
如图3所示,基于如图1的Web应用系统,消息源或数据源向消息投递接口发送请求连接的请求,消息投递接口回执接手/建立连接,消息源或数据源开始向消息投递接口投递信息,结束后断开连接;消息投递接口将数据发送至数据推送服务模块,数据推送服务模块则将数据发送至与其连接的所有客户端。与此同时,客户端会话管理模块会管理这会话列表。
如图4所示,当某个客户端将其需要发送的数据通过广播的形式发送至数据推送服务模块,数据推送服务模块再将其发至与其连接的所有客户端。
如图5所示,DCN监听服务模块与某个Oracle数据库建立连接/监听关系,这时如图6所示,当此Oracle数据库的数据发生变更时则将其存储于暂存队列中并且启动定时器,等待定时器到达则DCN监听服务模块将队列中的数据进行整合以广播形式将变更数据发送至数据推送服务模块,数据推送服务模块则将数据发送至与其连接的所有客户端。
以上的设计使得本发明的Web应用系统可以实现三种类型的数据数据实时推送和广播需求,包括从外部消息源向客户端实时推送或广播数据、任意一个客户端向其他客户端实时广播数据以及高效的实时监听和捕获Oracle数据库的表数据变化。
Claims (5)
1.一种高实时性Web应用系统,其特征在于,包括客户端、消息投递接口、数据推送服务模块、客户端会话管理模块、会话接入接口、Oracal数据库以及DCN监听服务模块;
消息投递接口、数据推送服务模块和DCN监听服务模块的承载协议为WebSocket协议;数据推送服务模块和DCN监听服务模块采用Node.js实现;
客户端可将需要发送的数据或消息发送至数据推送服务模块用于发送至其他客户端;消息投递接口用于外部数据或消息的输入接口;DCN监听服务模块用于获得Oracal数据库的数据变化信息并将变化信息发送至数据推送服务模块;数据推送服务模块用于将消息投递接口、DCN监听服务模块以及客户端广播请求的数据或消息推送到所有客户端;客户端会话管理模块用于客户端网络连接关系的管理及监测;会话接入接口用于监听指定的网络端口并且用于客户端的会话接入。
2.如权利要求1所述的一种高实时性Web应用系统,其特征在于,每个接入会话接入接口的客户端都生成一个WebSocket双向长连接会话,这些会话由客户端会话管理模块管理及监测。
3.如权利要求1所述的一种高实时性Web应用系统,其特征在于,消息投递接口为采用Node.js实现的一个WebServer服务。
4.如权利要求1所述的一种高实时性Web应用系统,其特征在于,DCN监听服务模块设有定时器,定时器到达时DCN监听服务模块将Oracal数据库的数据变化信息发送至数据推送服务模块。
5.使用权利要求1中Web应用系统的数据实时推送方法,其特征在于,包括以下部分:
(1)当有外部消息或者数据到达消息投递接口,消息投递接口通过数据推送服务模块将外部消息或者数据推送至客户端;
(2)当有一个客户端请求推送消息或者数据至其他客户端,该客户端就会通过会话接入接口进行数据或者消息的推送;
(3)当Oracal数据库的数据发生变化,DCN监听服务模块则会通过数据推送服务模块将该变化数据提送至各客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410004933.8A CN103780681A (zh) | 2014-01-06 | 2014-01-06 | 一种高实时性Web应用系统及其数据实时推送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410004933.8A CN103780681A (zh) | 2014-01-06 | 2014-01-06 | 一种高实时性Web应用系统及其数据实时推送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103780681A true CN103780681A (zh) | 2014-05-07 |
Family
ID=50572496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410004933.8A Pending CN103780681A (zh) | 2014-01-06 | 2014-01-06 | 一种高实时性Web应用系统及其数据实时推送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103780681A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239505A (zh) * | 2014-09-12 | 2014-12-24 | 何苗 | 情境化定向实时双向推送同步处理系统 |
CN107682251A (zh) * | 2017-10-18 | 2018-02-09 | 福建中金在线信息科技有限公司 | 基于websocket的网页即时聊天方法及装置 |
CN107733979A (zh) * | 2017-09-06 | 2018-02-23 | 中国科学院计算机网络信息中心 | 数据推送方法、服务器及系统 |
CN109151056A (zh) * | 2018-09-26 | 2019-01-04 | 携程计算机技术(上海)有限公司 | 基于Canal的消息推送方法和系统 |
CN109241072A (zh) * | 2018-08-31 | 2019-01-18 | 携程计算机技术(上海)有限公司 | 基于Canal的缓存更新方法及系统 |
CN109889454A (zh) * | 2019-02-26 | 2019-06-14 | 浪潮软件集团有限公司 | 一种微服务架构的消息推送装置及方法 |
CN110062055A (zh) * | 2019-05-31 | 2019-07-26 | 四川长虹电器股份有限公司 | 基于websocket的单用户多地登录分布式推送的方法 |
CN110659270A (zh) * | 2019-08-19 | 2020-01-07 | 苏宁金融科技(南京)有限公司 | 一种数据处理及传输方法和装置 |
CN111245856A (zh) * | 2020-01-17 | 2020-06-05 | 深圳市乐唯科技开发有限公司 | 一种h5播放实时视频的方法与系统 |
CN111970315A (zh) * | 2019-05-20 | 2020-11-20 | 北京车和家信息技术有限公司 | 推送消息的方法、装置及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103259683A (zh) * | 2013-05-16 | 2013-08-21 | 烽火通信科技股份有限公司 | 基于HTML5的Web网管系统二级缓存推送方法 |
CN103442063A (zh) * | 2013-08-29 | 2013-12-11 | 贝壳网际(北京)安全技术有限公司 | 信息处理方法、客户端设备及服务器 |
-
2014
- 2014-01-06 CN CN201410004933.8A patent/CN103780681A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103259683A (zh) * | 2013-05-16 | 2013-08-21 | 烽火通信科技股份有限公司 | 基于HTML5的Web网管系统二级缓存推送方法 |
CN103442063A (zh) * | 2013-08-29 | 2013-12-11 | 贝壳网际(北京)安全技术有限公司 | 信息处理方法、客户端设备及服务器 |
Non-Patent Citations (2)
Title |
---|
李小智: "基于消息中间件的服务器推送技术的应用研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
郑强: "web服务器推送技术的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239505B (zh) * | 2014-09-12 | 2015-10-07 | 何苗 | 情境化定向实时双向推送同步处理系统 |
CN104239505A (zh) * | 2014-09-12 | 2014-12-24 | 何苗 | 情境化定向实时双向推送同步处理系统 |
CN107733979B (zh) * | 2017-09-06 | 2021-05-28 | 中国科学院计算机网络信息中心 | 数据推送方法、服务器及系统 |
CN107733979A (zh) * | 2017-09-06 | 2018-02-23 | 中国科学院计算机网络信息中心 | 数据推送方法、服务器及系统 |
CN107682251A (zh) * | 2017-10-18 | 2018-02-09 | 福建中金在线信息科技有限公司 | 基于websocket的网页即时聊天方法及装置 |
CN109241072A (zh) * | 2018-08-31 | 2019-01-18 | 携程计算机技术(上海)有限公司 | 基于Canal的缓存更新方法及系统 |
CN109151056A (zh) * | 2018-09-26 | 2019-01-04 | 携程计算机技术(上海)有限公司 | 基于Canal的消息推送方法和系统 |
CN109151056B (zh) * | 2018-09-26 | 2021-11-19 | 携程计算机技术(上海)有限公司 | 基于Canal的消息推送方法和系统 |
CN109889454A (zh) * | 2019-02-26 | 2019-06-14 | 浪潮软件集团有限公司 | 一种微服务架构的消息推送装置及方法 |
CN111970315A (zh) * | 2019-05-20 | 2020-11-20 | 北京车和家信息技术有限公司 | 推送消息的方法、装置及系统 |
CN110062055B (zh) * | 2019-05-31 | 2021-07-20 | 四川长虹电器股份有限公司 | 基于websocket的单用户多地登录分布式推送的方法 |
CN110062055A (zh) * | 2019-05-31 | 2019-07-26 | 四川长虹电器股份有限公司 | 基于websocket的单用户多地登录分布式推送的方法 |
CN110659270A (zh) * | 2019-08-19 | 2020-01-07 | 苏宁金融科技(南京)有限公司 | 一种数据处理及传输方法和装置 |
CN111245856A (zh) * | 2020-01-17 | 2020-06-05 | 深圳市乐唯科技开发有限公司 | 一种h5播放实时视频的方法与系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103780681A (zh) | 一种高实时性Web应用系统及其数据实时推送方法 | |
CN106453288B (zh) | 一种支持异步模式的分布式微服务框架系统及其实现方法 | |
CN109309672B (zh) | 一种基于Web的空间数据实时推送多任务调度方法 | |
CN103546584A (zh) | 信息推送方法和系统 | |
CN104717133A (zh) | 一种分布式消息推送系统及方法 | |
US10038664B2 (en) | Terminal status subscription method, apparatus, and system | |
CN102045270A (zh) | 聊天服务器系统、构建聊天服务器系统的方法以及聊天系统 | |
CN103312751A (zh) | 一种基于浏览器的即时通信方法 | |
CN105282227A (zh) | 一种高效率、高稳定性的页面实时数据刷新方法 | |
CN114328618B (zh) | 一种缓存数据同步方法、装置、设备及存储介质 | |
WO2021051966A1 (zh) | 一种信息推送方法及系统 | |
CN104378436A (zh) | 一种基于服务器推送的信息推送系统及推送方法 | |
CN102185801A (zh) | 一种即时通讯中的信息处理方法和即时通讯工具 | |
CN103095684A (zh) | 获取关注用户聚合信息的方法、装置及系统 | |
CN102299810A (zh) | 群组变更事件的通知方法和系统 | |
CN103607423A (zh) | 一种基于WebSocket协议的分布式广播系统 | |
CN109151056B (zh) | 基于Canal的消息推送方法和系统 | |
CN104468380A (zh) | 一种接入点设备与服务器交互的接口通信方法 | |
CN104243610A (zh) | 一种分布式文件传输服务方法 | |
CN104463670A (zh) | 一种基于Websocket的银行前置交易系统的搭建方法 | |
CN103763380A (zh) | 一种同步演示数据的方法及系统 | |
CN103516788A (zh) | 一种数据推送方法及其Flash客户端和服务器 | |
CN104378419A (zh) | 一种数据高速推送的方法及系统 | |
CN107920072A (zh) | 一种基于数据特征的多媒体共享方法及系统 | |
CN203504603U (zh) | 移动互联网语音社区的服务器架构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140507 |
|
WD01 | Invention patent application deemed withdrawn after publication |