CN102868759A - 服务器控制浏览器界面数据刷新的系统及其方法 - Google Patents
服务器控制浏览器界面数据刷新的系统及其方法 Download PDFInfo
- Publication number
- CN102868759A CN102868759A CN2012103714269A CN201210371426A CN102868759A CN 102868759 A CN102868759 A CN 102868759A CN 2012103714269 A CN2012103714269 A CN 2012103714269A CN 201210371426 A CN201210371426 A CN 201210371426A CN 102868759 A CN102868759 A CN 102868759A
- Authority
- CN
- China
- Prior art keywords
- server
- long
- connection
- processing module
- data
- 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.)
- Granted
Links
Images
Abstract
本发明公开了一种服务器控制浏览器界面数据刷新的系统,其特征在于所述系统包括采用COMET技术的消息推送管理模块、长连接处理模块、长轮询处理模块,所述消息推送管理模块用于存储与浏览器界面数据请求相关的长连接、长轮询属性及其控制方式;所述长连接处理模块用于根据服务器状态和长连接等级进行长连接的关闭和恢复操作;所述长轮询处理模块用于向服务器定期发送轮询请求检测服务器响应时间,判断服务器运行状态。该系统可以随意调整长连接等级,保留重要数据连接通常,降低低等级链接的访问频率。
Description
技术领域
本发明属于网络客户端数据刷新技术领域,具体涉及一种服务器控制浏览器界面数据刷新的系统及其方法。
背景技术
在越来越追求客户体验的时代,对B/S结构客户端访问要求无感刷新的要求越来越高。但是业界却没有一套整体解决服务器端可控浏览器前段无感页面局部刷新的方案。在传统B/S结构Web开发的技术下没法在保持通讯的同时实时控制并管理连接以保持服务端不被阻塞的方法。服务器端和客户端完全是分离的,服务器端不可控制浏览器发送的请求。这导致在大访问量的时候容易造成服务器阻塞和崩溃,而客户端完全不理会服务器端状态继续发送请求。
Comet是一种基于HTTP长连接的“服务器推”技术,是一种新的Web应用架构。基于这种架构开发的应用中,服务器端会主动以异步的方式向客户端程序推送数据,而不需要客户端显式的发出请求。Comet架构非常适合事件驱动的Web应用,以及对交互性和实时性要求很强的应用,如股票交易行情分析、聊天室和Web版在线游戏等。
然而,现有的Comet框架存在这样或者那样的缺陷。如效率低,因多数时间的Request/Response的Header/Content一致,会因此浪费不必要的带宽。缺少像是XMLHttpRequest可利用readyState判断进度、以及status判断联机状态。现有的Comet框架会把将传统的Web服务器的连接给占住。现有的Comet框架客户端状态和服务端完全分离,不能根据服务端状态来选择性控制客户端活动。传统Comet Push机制在需要校验Cookie数值的时候没法实现,必须配合Polling来实现。本发明因此而来。
发明内容
本发明目的在于提供一种服务器控制浏览器界面数据刷新的系统,解决了现有技术中浏览器前端页面数据不能及时刷新,而采用长连接技术大访问量时容易造成服务器阻塞和崩溃等问题。
为了解决现有技术中的这些问题,本发明提供的技术方案是:
一种服务器控制浏览器界面数据刷新的系统,其特征在于所述系统包括采用COMET技术的消息推送管理模块、长连接处理模块、长轮询处理模块,所述消息推送管理模块用于存储与浏览器界面数据请求相关的长连接、长轮询属性及其控制方式;所述长连接处理模块用于根据服务器状态和长连接等级进行长连接的关闭和恢复操作;所述长轮询处理模块用于向服务器定期发送轮询请求检测服务器响应时间,判断服务器运行状态。
本发明的另一目的在于提供一种服务器控制浏览器界面数据刷新的方法,其特征在于所述方法包括以下步骤:
(1)构建消息推送管理模块,用于存储与浏览器界面数据请求相关的长连接、长轮询属性及其控制方式;
(2)根据服务器状态和长连接等级采用长连接处理模块进行长连接的关闭和恢复操作;
(3)采用长轮询处理模块向服务器定期发送轮询请求检测服务器响应时间,判断服务器运行状态。
本发明技术方案结合Comet技术提供一套服务端控制客户端数据以及状态的方法,实现可控的前端数据刷新方法,实用Comet长连接技术,AJAX异步请求,可操作性强。
相对于现有技术中的方案,本发明的优点是:
本发明技术方案轻量级、优化前台结构、方便管理前台连接。本发明技术方案更好利用服务器资源。根据服务器状态来调整客户端连接数量,降低服务器端压力。本发明技术方案节省带宽,无新数据无需传送,有数据以JSON以及GZIP方式传送。最大程度降低带宽。
本发明技术方案前台代码结构化,开发人员,更好理解掌握。本发明可以随意调整长连接等级,保留重要数据连接通常,降低低等级链接的访问频率。客户端兼容各种浏览器,兼容各种javascript组件,减少工作量。前后端完全分离,服务器端无限制,能提供HTTP服务的应用服务器均可做长连接控制服务器。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为服务器控制浏览器界面数据刷新的方法流程图。
具体实施方式
以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。
实施例
本实施例为服务器控制浏览器界面数据刷新的系统,包括采用COMET技术的消息推送管理模块、长连接处理模块、长轮询处理模块,所述消息推送管理模块用于存储与浏览器界面数据请求相关的长连接、长轮询属性及其控制方式;所述长连接处理模块用于根据服务器状态和长连接等级进行长连接的关闭和恢复操作;所述长轮询处理模块用于向服务器定期发送轮询请求检测服务器响应时间,判断服务器运行状态。
如图1所示,具体可以按照以下步骤进行构建:
设置消息推送管理模块为前端长连接容器。所有长连接、长轮询均需统一管理,全局容器中包含初始化定义长连接等级、各个等级的长轮询循环时间、超时时间,服务器状态等级对应的长连接、长轮询的控制方式。
容器负责所有连接的存放,查询、检索,并定义全局的连接等级,设置各个等级轮询时间,请求超时时间(一般高等级连接超时时间比较长),最重要的是定义服务器阻塞或者异常时对各个等级长连接的处理,如停止低等级的长连接,延长中等级长连接的轮询时间,保证高等级长连接的通畅。
容器包含一个长轮询,长轮询负责检测服务器状态,如果检测有异常,则按照容器定义的规则进行修改站点所有长连接的状态。
长连接容器统一管理站点所有长连接和长轮询,容器具有如下原则:1)原生javascript编写,支持所有浏览器,统一封装,可以在任何通用前端框架中使用。2)扩展:组件功能可以方便扩展而且不影响原生封装的功能。3)规范与积累:依照JS规范编写,代码可以重用性、重构性简单易懂,具备积累的特性。
一个长连接的对象模型如下:
如上述模型所示,单个长连接具有如下共性:1、初始化,相同初始化方法,不同产品以及功能均使用。可移植性高。2、设置轮询时间,供容器调用,也可以手工设置。3、关闭连接。4、恢复连接。5、连接类型:长轮询/长连接;6、成功返回回调方法。7、失败回调方法。8、销毁。
前台JavaScript长连接管理的框架设置长连接等级,该长连接等级影响长连接轮询时间长短、连接超时时间长短,服务器reject后的处理方式。
数据长连接初始化时可以指定参数进行设置等级以及轮询周期,超时时间。如下:
a)、定义一个长连接
var conn=new longConn();
b)、初始化长连接,定义等级为3,轮询查询数据时间为15秒,超时时间为20秒。
conn.init({connlevel:3,looptime:15,timeout:20,url:…});
c)定义数据接收成功、失败后的处理方式
conn.success=function(data){//do something}
conn.error=function(data){LONGCONNCOLL.error;//do something}
接收到error后首先由容器统一处理,容器可以通过后台传送的错误类型来决定如何处理该长连接。错误代码和处理类别如下
错误代码 处理方式
101 延长长连接时间conn.looptime+data.time
102 关闭长连接if(conn.connlevel<data.level)conn.Closeconn();
其它类型错误由长连接自定义error方法处理。
d)打开链接。进行数据传输
conn.Openconn();
e)关闭连接,并销毁
conn.Closeconn();
conn.destory();
2、后台(长连接管理系统)
后台控制前台长连接的方法,长连接有两种类型:A、状态长连接;状态长连接实时监控服务器运行状态,实时调整控制客户端连接数量和连接时间。B、数据长连接;数据长连接负责页面数据的展示,展示客户实时数据。
状态长连接没有等级,状态长连接一直保持与服务器通讯,实时获取服务器状态,根据服务器情况设置前台容器中所有长连接属性。
(1)状态长连接
通过Comet技术后台和浏览器前端一直保持通讯,后台检测服务器内存、CPU以及HTTP线程情况,往客户端write数据。
客户端根据request的状态变换获取服务端的状态数据,接收数据后根据容器设定更改所有数据长连接属性。
(2)数据长连接
常规的数据服务、提供给每个数据长连接业务数据。
客户端通过定时发送长轮询来检测服务器响应时间以及服务器状态,结合状态长连接来多方位控制客户端长连接,保证服务器通畅。
上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。
Claims (2)
1.一种服务器控制浏览器界面数据刷新的系统,其特征在于所述系统包括采用COMET技术的消息推送管理模块、长连接处理模块、长轮询处理模块,所述消息推送管理模块用于存储与浏览器界面数据请求相关的长连接、长轮询属性及其控制方式;所述长连接处理模块用于根据服务器状态和长连接等级进行长连接的关闭和恢复操作;所述长轮询处理模块用于向服务器定期发送轮询请求检测服务器响应时间,判断服务器运行状态。
2.一种服务器控制浏览器界面数据刷新的方法,其特征在于所述方法包括以下步骤:
(1)构建消息推送管理模块,用于存储与浏览器界面数据请求相关的长连接、长轮询属性及其控制方式;
(2)根据服务器状态和长连接等级采用长连接处理模块进行长连接的关闭和恢复操作;
(3)采用长轮询处理模块向服务器定期发送轮询请求检测服务器响应时间,判断服务器运行状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210371426.9A CN102868759B (zh) | 2012-09-28 | 2012-09-28 | 服务器控制浏览器界面数据刷新的系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210371426.9A CN102868759B (zh) | 2012-09-28 | 2012-09-28 | 服务器控制浏览器界面数据刷新的系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102868759A true CN102868759A (zh) | 2013-01-09 |
CN102868759B CN102868759B (zh) | 2016-07-06 |
Family
ID=47447345
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210371426.9A Active CN102868759B (zh) | 2012-09-28 | 2012-09-28 | 服务器控制浏览器界面数据刷新的系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102868759B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166964A (zh) * | 2013-03-06 | 2013-06-19 | 中国人民解放军国防科学技术大学 | 用于超级计算系统监控的前后端实时通信方法 |
WO2014179992A1 (zh) * | 2013-05-10 | 2014-11-13 | 华为技术有限公司 | 用户面事件处理方法、pcrf实体和af实体 |
CN107243156A (zh) * | 2017-06-30 | 2017-10-13 | 珠海金山网络游戏科技有限公司 | 一种大型分布式网络游戏服务器系统 |
CN107645517A (zh) * | 2016-07-20 | 2018-01-30 | 腾讯科技(深圳)有限公司 | 数据推送方法及装置 |
CN110166791A (zh) * | 2019-06-12 | 2019-08-23 | 北京字节跳动网络技术有限公司 | 连接的建立方法、装置、设备及存储介质 |
CN110932924A (zh) * | 2019-10-28 | 2020-03-27 | 深圳市钱海网络技术有限公司 | 一种用于app与服务器进行通信的消息推送方法及装置 |
CN113783728A (zh) * | 2021-09-10 | 2021-12-10 | 咪咕数字传媒有限公司 | 连接优化方法、装置、计算设备及计算机存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599982A (zh) * | 2008-06-06 | 2009-12-09 | 广东宇天信通通信科技有限公司 | 手机信息浏览装置、系统及实现方法 |
CN102420861A (zh) * | 2011-11-29 | 2012-04-18 | 广州杰赛科技股份有限公司 | 服务器的消息监听方法、装置及系统 |
-
2012
- 2012-09-28 CN CN201210371426.9A patent/CN102868759B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599982A (zh) * | 2008-06-06 | 2009-12-09 | 广东宇天信通通信科技有限公司 | 手机信息浏览装置、系统及实现方法 |
CN102420861A (zh) * | 2011-11-29 | 2012-04-18 | 广州杰赛科技股份有限公司 | 服务器的消息监听方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
周巍: "基于请求策略和状态切换的服务器推送技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》, 15 November 2009 (2009-11-15) * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166964A (zh) * | 2013-03-06 | 2013-06-19 | 中国人民解放军国防科学技术大学 | 用于超级计算系统监控的前后端实时通信方法 |
CN103166964B (zh) * | 2013-03-06 | 2014-05-14 | 中国人民解放军国防科学技术大学 | 用于超级计算系统监控的前后端实时通信方法 |
WO2014179992A1 (zh) * | 2013-05-10 | 2014-11-13 | 华为技术有限公司 | 用户面事件处理方法、pcrf实体和af实体 |
CN107645517A (zh) * | 2016-07-20 | 2018-01-30 | 腾讯科技(深圳)有限公司 | 数据推送方法及装置 |
CN107243156A (zh) * | 2017-06-30 | 2017-10-13 | 珠海金山网络游戏科技有限公司 | 一种大型分布式网络游戏服务器系统 |
CN110166791A (zh) * | 2019-06-12 | 2019-08-23 | 北京字节跳动网络技术有限公司 | 连接的建立方法、装置、设备及存储介质 |
CN110166791B (zh) * | 2019-06-12 | 2021-10-29 | 北京字节跳动网络技术有限公司 | 连接的建立方法、装置、设备及存储介质 |
CN110932924A (zh) * | 2019-10-28 | 2020-03-27 | 深圳市钱海网络技术有限公司 | 一种用于app与服务器进行通信的消息推送方法及装置 |
CN113783728A (zh) * | 2021-09-10 | 2021-12-10 | 咪咕数字传媒有限公司 | 连接优化方法、装置、计算设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102868759B (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102868759A (zh) | 服务器控制浏览器界面数据刷新的系统及其方法 | |
CN107390650B (zh) | 一种基于物联网的数据采集系统及基于该系统的数据压缩方法 | |
CN102880475B (zh) | 计算机软件系统中基于云计算的实时事件处理系统及方法 | |
CN103024014B (zh) | 通过消息队列的海量数据分发处理的方法和系统 | |
CN100512194C (zh) | 链路聚合方法、装置、mac帧收发方法和系统 | |
CN103326896B (zh) | 一种收集用户在互联网上产生的信息数据的系统及方法 | |
CN110413599A (zh) | 数据实时处理与存储系统及方法 | |
CN103064731A (zh) | 一种提高消息队列系统性能的装置及其方法 | |
CN105407180A (zh) | 服务器的消息推送方法和装置 | |
WO2012146026A1 (zh) | 一种物联网监控方法及系统 | |
CN105635279A (zh) | 一种分布式监控系统及数据采集方法 | |
CN108847977A (zh) | 一种业务数据的监控方法、存储介质和服务器 | |
CN105515912B (zh) | 一种多节点之间链路有效性检测和处理方法 | |
CN112118174B (zh) | 软件定义数据网关 | |
CN101953139B (zh) | 响应于网络层连通性的dhcp初始化 | |
CN101854399A (zh) | 一种网络数据的聚合方法及装置 | |
CN102111419A (zh) | 一种基于消息中间件的客户端自动重连方法 | |
CN102025783A (zh) | 集群系统及其消息处理方法和协议转发网关 | |
CN107911466A (zh) | 一种多层架构下应用关联方法 | |
CN104270432A (zh) | 基于钻井行业实时数据服务系统及数据交互方法 | |
Oprea et al. | Internet of things, challenges for demand side management | |
CN109614292A (zh) | 基于shell的主机运行数据自动采集监控系统 | |
CN103873564A (zh) | 一种在多服务器负载均衡条件下实现SignalR双工通信的方法 | |
CN107426066A (zh) | 一种虚拟化警情信息汇集管理装置及方法 | |
CN103457980A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |