CN102035893A - 一种服务器主动推送数据的方法和系统 - Google Patents
一种服务器主动推送数据的方法和系统 Download PDFInfo
- Publication number
- CN102035893A CN102035893A CN201010603239XA CN201010603239A CN102035893A CN 102035893 A CN102035893 A CN 102035893A CN 201010603239X A CN201010603239X A CN 201010603239XA CN 201010603239 A CN201010603239 A CN 201010603239A CN 102035893 A CN102035893 A CN 102035893A
- Authority
- CN
- China
- Prior art keywords
- server
- data
- browser
- actively
- subscription
- 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
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 230000000737 periodic effect Effects 0.000 claims description 6
- 230000002085 persistent effect Effects 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 230000016776 visual perception Effects 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种服务器主动推送数据的方法和系统,其中,所述方法具体包括:浏览器发起注册请求,以连接服务器并接受所述服务器主动推送的数据,在所述浏览器注册成功后,所述浏览器与服务器之间建立用于传输主动推送的数据的数据通道;所述浏览器发起订阅请求,所述订阅请求包含订阅数据的类型参数以及表示订阅内容的标识;所述服务器根据所述订阅请求,通过所述数据通道,向所述浏览器主动推送相应数据。通过本发明,可以满足对浏览器实时推送数据的要求,并且能够提高应用系统的并发度,减少服务器的性能消耗。
Description
技术领域
本发明涉及信息系统开发技术领域,更具体地说,涉及一种服务器主动推送数据的方法和系统。
背景技术
随着Web技术的流行,越来越多的应用从原有的C/S(Client/Server,客户机/服务器区)模式转变为B/S(Browser/Server,浏览器/服务器)模式,享受着Web技术所带来的各种优势,例如:跨平台、免客户端维护、跨越防火墙、扩展性好等。在这种模式下,用户工作界面是通过万维网浏览器来实现,极少部分事务逻辑在前端浏览器实现,但是主要事务逻辑在服务器端实现。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。
但是基于浏览器的应用,也有它不足的地方,传统模式的Web系统(包括ajax技术)都是以客户端发出请求、服务器端响应的方式工作,不具备由服务器端主动向浏览器推送信息的能力,这无法满足对实时性要求很高的系统的需求,诸如监控系统、即时通讯系统、报价系统。由于浏览器中的页面每次需要全部刷新才能从服务器端获得最新的数据或向服务器传送数据,这样产生的延迟所带来的视觉感受非常糟糕。
目前,现有技术已经具备一些“服务器推”模式的解决方案:
(1)基于flash套接口(Flash XMLSocket)的实现方案:
须依赖Flash播放器才能正常运行,该方式在flash程序中实现了与C/S的套接口(socket)一致的能力,利用Flash提供的XMLSocket套接口,在javascript中直接调用,实现“服务器推”模式的开发和应用。
(2)基于Java Applet套接口(java.net.Socket)的实现方案:
须在浏览器安装jvm,如果客户端安装了Java Applet,后台服务可以直接在java代码中通过java.net.Socket完成“服务器推”的动作。
上述两种实现方案中,Flash播放器以及Applet这样的浏览器插件技术本身又有许多问题,例如跨平台问题和插件版本兼容性问题。
第三种“服务器推”模式的解决方案是基于http请求的Comet技术。Comet是一套B/S下的,基于纯http请求的,专门用来解决“服务器推”的技术模型。目前业界已经有一些比较成熟的Comet框架:
1.Pushlet
该框架是Comet模型的一套实现,主要技术要点描述如下:
通过前台的javascript和后台的java代码实现一套订阅请求机制,这也是实时推送的前提条件。这包括订阅主题、订阅回话管理、订阅时长等等。在浏览器端提供javascript的api,以主题为订阅标识,通过ajax向后台发送http请求。后台接到订阅信息后将订阅控制内容返回给浏览器端。浏览器端根据后台派发的控制信息,定时向后台发送取数请求,后台响应该请求即完成推送动作。这实际上是前台自动轮询的一种变相实现,只是轮询需要的时间间隔、主题等,由后台来维护。
2.Bosh
Bosh是一种基于http长连接请求的Comet框架。同样实现了一套订阅请求机制。浏览器与服务端的长连接请求过程可描述如下:
浏览器发送第一个订阅请求,服务器端将该请求保持。当第一个订阅有数据需要实时推送时,将数据载入到第一个请求的响应中,并释放;
浏览器发送第二个订阅请求,如果第一个请求仍然被保持在服务器端且没有数据需推送,则返回空包,然后保持第二个请求。如果浏览器有新的订阅请求,再重复使用第一个请求,如此重复。
然而,对于Pushlet模式来说,虽然轮询的规则是由服务端控制的,但原理上依然采取的是前台轮询机制,为了提高推送实时程度,势必须加大轮询频率(如每2秒轮询一次或更少),这会显著增加对服务器的压力;另外,轮询机制不论是否有数据推送,都需不断地“请求返回”浪费了较多的网络带宽。实时性和服务器性能的矛盾是pushlet的主要缺陷。
而Bosh模式相对pushlet来讲,虽有效减轻了服务器负担,节省了网络带宽,但空包返回率在推送频率低的环境中仍会很高,而且订阅控制信息与推送数据在同一个请求中返回,且两者通常属于不同的主题,这在逻辑上比较凌乱。
发明内容
有鉴于此,本发明实施例提供一种服务器主动推送数据的方法和系统,满足对浏览器实时推送数据的要求,能够提高应用系统的并发度,减少服务器的性能消耗。
本发明实施例提供一种服务器主动推送数据的方法,所述方法包括:
浏览器发起注册请求,以连接服务器并接受所述服务器主动推送的数据,在所述浏览器注册成功后,所述浏览器与服务器之间建立用于传输主动推送的数据的数据通道;
所述浏览器发起订阅请求,所述订阅请求包含订阅数据的类型参数以及表示订阅内容的标识;
所述服务器根据所述订阅请求,通过所述数据通道,向所述浏览器主动推送相应数据。
优选的,当所述数据通道建立之后,所述方法还包括:
所述浏览器向服务器发送周期性心跳信息,以表示所述浏览器与服务器之间的持续连接。
优选的,当需要将多条数据同时推送至所述浏览器时,所述方法还包括:
将所述多条数据进行串行化处理,通过所述数据通道,将经过串行化处理后的数据按顺序依次推送至所述浏览器。
优选的,所述服务器根据所述订阅请求,通过所述数据通道,向所述浏览器主动推送相应数据,具体包括:
所述服务器根据所述订阅请求,将相应数据转化为xml或Json或文本模式,通过所述数据通道向所述浏览器主动推送。
优选的,所述方法还包括:
当所述浏览器请求断开与服务器的连接时,所述数据通道被取消。
一种服务器主动推送数据的系统,所述系统包括:浏览器和服务器;其中,
所述浏览器,用于发起注册请求,以连接服务器并接受所述服务器主动推送的数据,并在所述浏览器与服务器之间建立用于传输主动推送的数据的数据通道之后,发起订阅请求,所述订阅请求包含订阅数据的类型参数以及表示订阅内容的标识;
所述服务器,用于在所述浏览器注册成功后,在所述浏览器与服务器之间建立所述数据通道,并根据所述订阅请求,通过所述数据通道,向所述浏览器主动推送相应数据。
优选的,当所述数据通道建立之后,所述浏览器还用于:向服务器发送周期性心跳信息,以表示所述浏览器与服务器之间的持续连接。
优选的,当需要将多条数据同时推送至所述浏览器时,所述服务器还用于:
将所述多条数据进行串行化处理,通过所述数据通道,将经过串行化处理后的数据按顺序依次推送至所述浏览器。
优选的,所述服务器还用于:根据所述订阅请求,将相应数据转化为xml或Json或文本模式,通过所述数据通道向所述浏览器主动推送。
优选的,当所述浏览器请求断开与服务器的连接时,所述服务器还用于:取消所述数据通道。
同现有技术相比,本发明实施例提供了一种基于请求模式且不依赖其他第三方框架或插件的服务器与浏览器的主动推模式的应用框架,当浏览器建立与服务器的连接之后,服务器建立处于浏览器与服务器之间建立用于传输主动推送的数据的数据通道,服务器能够通过该数据通道,根据浏览器的订阅请求,向浏览器主动推送相应数据,可见,服务器能够根据浏览器的订阅请求进行数据的主动推送,因此,不需浏览器采用前台轮询的方式判断是否有主动推送的数据,可最大程度减少服务器连接的占用,从而提高应用系统的并发度,减少服务器的性能消耗。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种服务器主动推送数据的方法步骤示意图;
图2为本发明实施例提供的浏览器与服务器之间建立Http连接的示意图;
图3为本发明实施例提供的服务器根据浏览器的请求主动推送数据的流程示意图;
图4为本发明实施例提供的服务器主动推送数据的系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种服务器主动推送数据的方法及系统,以提高应用系统的并发度,减少服务器的性能消耗。为了便于对本发明实施例技术方案的充分理解,使得本发明的目的、技术方案及优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。
本发明实施例提供了一种服务器主动推送数据的方法,如图1所示,为该方法的步骤流程,该方法可以包括以下步骤:
步骤101、浏览器发起注册请求,以连接服务器并接受所述服务器主动推送的数据,在所述浏览器注册成功后,所述浏览器与服务器之间建立用于传输主动推送的数据的数据通道;
步骤102、所述浏览器发起订阅请求,所述订阅请求包含订阅数据的类型参数以及表示订阅内容的标识;
步骤103、所述服务器根据所述订阅请求,通过所述数据通道,向所述浏览器主动推送相应数据。
Comet是一种新的Web应用架构。基于这种架构开发的应用中,服务器会主动以异步的方式向客户端程序推送数据,而不需要客户端显式的发出请求。Comet架构非常适合事件驱动的Web应用,以及对交互性和实时性要求很强的应用,如股票交易行情分析、聊天室和Web版在线游戏等。
本发明实施例中,采用完整的请求、订阅、推送机制,与其配套的还有一个供前台浏览器使用的API(Application Programming Interface,应用程序编程接口),可以称之为Comet-client。本发明实施例技术方案实际是一个完整的comet技术实现,所有的请求都由Comet-client提供的方法发送,例如:发送方式采用ajax(Asynchronous JavaScript and XML,异步JavaScript和XML),即xmlHttpRequest请求,并在服务器用nio方式保持请求,以提高系统性能和并发度,浏览器前后台之间的信息交互采用xml作为数据格式,订阅控制信息和推送数据均采用此数据模型。
由此,本发明实施例提供了一种基于请求模式且不依赖其他第三方框架或插件的服务器与浏览器的主动推模式的应用框架,当浏览器建立与服务器的连接之后,服务器建立处于浏览器与服务器之间建立用于传输主动推送的数据的数据通道,服务器能够通过该数据通道,根据浏览器的订阅请求,向浏览器主动推送相应数据,可见,服务器能够根据浏览器的订阅请求进行数据的主动推送,因此,不需浏览器采用前台轮询的方式判断是否有主动推送的数据,可最大程度减少服务器连接的占用,从而提高应用系统的并发度,减少服务器的性能消耗。
根据http1.1规范的规定,客户端与服务器之间建立的Http连接不能超过两个,出现的两个以上的新的连接会被阻塞。本发明实施例中,客户端与服务器之间建立的Http连接有两个,本发明实施例中将两个可用Http连接分别划分为显式连接(explicit)和隐式连接(implicit),如图2所示,为浏览器与服务器之间建立Http连接的示意图,其中,粗线条表示显式请求、细线条表示隐式请求,虚线表示相应请求的返回,通过请求的返回,浏览器可以获知服务器已经收到相应的显式请求,并已经执行了对于相关请求的处理操作。显式连接用来发送有逻辑含义的注册请求及订阅请求。上述两种请求中,显式请求不需在服务器被保持(hold),即:对显示请求处理的线程执行挂起操作。对于订阅请求来说,仅仅是将订阅请求中携带的订阅数据的类型参数以及表示订阅内容的标识信息保存在订阅队列中,然后立即返回,这就可以保证显式连接的灵活性。而隐式请求用来发送建立数据通道请求,它不包含任何逻辑含义。服务器将数据通道请求hold起来,并不返回,一旦有数据需要推送,就将返回数据写入该数据通道,完成推送,然后将数据通道释放。当浏览器获知数据通道被释放后,即立刻再次发起隐式连接请求,将推动数据的主动权重新交给服务器。
结合图2中的时间区域划分,隐式连接可以跨越时间区域,完成前台异步。在同一时间区域中,隐式请求和显示请求可同时发送或返回,互不干扰。
需要说明的是,如果出现需要将多条数据同时推送给同一浏览器的情况,由于数据通道只有一条,因此并发的推送动作会在这里被“串行化”处理,即:将所述多条数据进行串行化处理,通过所述数据通道,将经过串行化处理后的数据按顺序依次推送至所述浏览器。
本发明实施例中,订阅请求可以分为三类:普通请求,单次订阅请求和自动订阅请求(即:长订阅请求),它们分别可以称为commonRequest、subscribeOnce及subscribeAuto。普通请求是与其他两种订阅请求区别开的,这是对传统的客户端请求服务端返回模式的支持;而订阅类型的请求,将推动数据的主动权交给了后台服务器,服务器以订阅请求中携带的类型参数以及表示订阅内容的标识,主动的向浏览器推送数据。单次订阅请求与自动订阅请求的不同之处在于:浏览器根据单次订阅请求得到数据后,其发送的主题将被服务器删除,整个订阅过程结束;浏览器根据自动订阅请求得到数据后,服务器并不删除该订阅的主题,继续保持订阅状态,可根据自动订阅请求的参数信息连续向浏览器主动推送数据,直到浏览器人为地调用comet-client提供的取消订阅为止。上述三类均是显式请求,而针对两种订阅类型的请求而推送的数据需要隐式请求的发起以建立浏览器与服务器之间的数据通道。
图3所示为服务器根据浏览器的请求主动推送数据的流程示意图,整个过程可以包括如下操作步骤:
步骤301、浏览器发起注册(join)请求,向后台服务器请求将本浏览器加入服务器的session管理,以连接服务器并接受所述服务器主动推送的数据;
步骤302、服务器接收浏览器发起的join请求,将该浏览器加入服务器的session管理,并向浏览器反馈join成功反馈信息;
步骤303、浏览器向服务器发起隐式连接请求,以实现服务器根据该隐式请求建立处于浏览器与服务器之间、用于传输主动推送的数据的数据通道;
步骤304、浏览器向服务器发送周期性心跳(heartbeat)信息,以表示所述浏览器与服务器之间的持续连接;
步骤305、服务器接收浏览器发送的心跳信息,并实时向浏览器反馈接收成功的反馈信息;
步骤306、浏览器发起普通请求(commonRequest),该普通请求中通常包含有表示该请求是普通请求的类型参数,除此之外,普通请求中还包含了表示订阅内容的标识,当然,还包含了发起该请求的浏览器的地址信息;
步骤307、服务器接收普通请求,向浏览器反馈成功接收该请求的反馈信息;
本发明实施例中,由于订阅请求可以分为三类:普通请求,单次订阅请求和自动订阅请求,因此,浏览器还可能发起另外两种请求,分别如步骤306′和306″所示:
步骤306′、浏览器发起单次订阅请求(subscribeOnce),同理,该请求中携带有表示该请求是单次订阅请求的类型参数、表示订阅内容的标识以及发起该请求的浏览器的地址信息;
步骤307′、服务器接收单次订阅请求,向浏览器反馈成功接收该请求的反馈信息;
步骤306″、浏览器发起自动订阅请求(subscribeAuto),同理,该请求中携带有表示该请求是自动订阅请求的类型参数、表示订阅内容的标识以及发起该请求的浏览器的地址信息;
步骤307″、服务器接收自动订阅请求,向浏览器反馈成功接收该请求的反馈信息;
步骤308、当出现需要向浏览器推送的数据时,服务器利用已经建立的数据通道,向浏览器主动推送相应数据;
当前数据推送完毕时,数据通道通常会被释放。这时,如果再次出现需要服务器推送的数据时,需要浏览器再次向服务器发送隐式连接,以实现由服务器再次建立数据通道的目的,如步骤309所示;
步骤310、服务器通过再次建立的数据通道,向浏览器主动推送数据;
步骤311、浏览器向服务器发送取消连接的中断请求(leave);
步骤312、服务器将已存在于自身session管理中的该浏览器的相关信息进行删除,并清空针对该浏览器生成的订阅队列,并向浏览器反馈处理结果信息;
步骤313、服务器释放数据通道。
本发明实施例中,当浏览器发起的请求实现是基于Http技术的,则可免除部署时防火墙、代理服务器等问题的困扰;此外,采用纯Http技术实现,可以不受操作系统,浏览器以及其他浏览器插件的限制,适用范围非常广泛;在单个浏览器只能使用2个Http请求的前提下,提供了最近似C/S模式的实时响应度。
服务器推动数据时,数据的传递方式可以为xml或Json或文本模式。
本发明实施例在具体实现时,对设计开发语言并无具体限定,可以采用Java语言,也可采用其他的语言形式。
相应上述服务器主动推送数据的方法实施例,本发明实施例还提供了一种服务器主动推送数据的系统,如图4所示,所述系统包括:浏览器401和服务器402;其中,
所述浏览器401,用于发起注册请求,以连接服务器402并接受所述服务器402主动推送的数据,并在所述浏览器401与服务器402之间建立用于传输主动推送的数据的数据通道之后,发起订阅请求,所述订阅请求包含订阅数据的类型参数以及表示订阅内容的标识;
所述服务器402,用于在所述浏览器401注册成功后,在所述浏览器401与服务器402之间建立所述数据通道,并根据所述订阅请求,通过所述数据通道,向所述浏览器401主动推送相应数据。
本发明实施例提供了一种基于请求模式且不依赖其他第三方框架或插件的服务器与浏览器的主动推模式的应用框架,当浏览器建立与服务器的连接之后,服务器建立处于浏览器与服务器之间建立用于传输主动推送的数据的数据通道,服务器能够通过该数据通道,根据浏览器的订阅请求,向浏览器主动推送相应数据,可见,服务器能够根据浏览器的订阅请求进行数据的主动推送,因此,不需浏览器采用前台轮询的方式判断是否有主动推送的数据,可最大程度减少服务器连接的占用,从而提高应用系统的并发度,减少服务器的性能消耗。
根据http1.1规范的规定,客户端与服务器之间建立的Http连接不能超过两个,出现的两个以上的新的连接会被阻塞。本发明实施例中,客户端与服务器之间建立的Http连接有两个,本发明实施例中将两个可用Http连接分别划分为显式连接(explicit)和隐式连接(implicit)。显式连接用来发送有逻辑含义的注册请求及订阅请求。上述两种请求中,显式请求不需在服务器被保持(hold),即:对显示请求处理的线程执行挂起操作。对于订阅请求来说,仅仅是将订阅请求中携带的订阅数据的类型参数以及表示订阅内容的标识信息保存在订阅队列中,然后立即返回,这就可以保证显式连接的灵活性。而隐式请求用来发送建立数据通道请求,它不包含任何逻辑含义。服务器将数据通道请求hold起来,并不返回,一旦有数据需要推送,就将返回数据写入该数据通道,完成推送,然后将数据通道释放。当浏览器获知数据通道被释放后,即立刻再次发起隐式连接请求,将推动数据的主动权重新交给服务器。
需要说明的是,当所述数据通道建立之后,所述浏览器还用于:向服务器发送周期性心跳信息,以表示所述浏览器与服务器之间的持续连接。
此外,当需要将多条数据同时推送至所述浏览器时,所述服务器还用于:将所述多条数据进行串行化处理,通过所述数据通道,将经过串行化处理后的数据按顺序依次推送至所述浏览器。
服务器推动数据时,数据的传递方式可以为xml或Json或文本模式,通过所述数据通道向所述浏览器主动推送。当所述浏览器请求断开与服务器的连接时,所述服务器还用于:取消所述数据通道。
上述系统实施例由于与前述方法实施例相对应,因此不做赘述,相关内容可以参见方法实施例中的详细描述。
以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明实施例的精神或范围的情况下,在其它实施例中实现。因此,本发明实施例将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种服务器主动推送数据的方法,其特征在于,所述方法包括:
浏览器发起注册请求,以连接服务器并接受所述服务器主动推送的数据,在所述浏览器注册成功后,所述浏览器与服务器之间建立用于传输主动推送的数据的数据通道;
所述浏览器发起订阅请求,所述订阅请求包含订阅数据的类型参数以及表示订阅内容的标识;
所述服务器根据所述订阅请求,通过所述数据通道,向所述浏览器主动推送相应数据。
2.根据权利要求1所述的服务器主动推送数据的方法,其特征在于,当所述数据通道建立之后,所述方法还包括:
所述浏览器向服务器发送周期性心跳信息,以表示所述浏览器与服务器之间的持续连接。
3.根据权利要求1所述的服务器主动推送数据的方法,其特征在于,当需要将多条数据同时推送至所述浏览器时,所述方法还包括:
将所述多条数据进行串行化处理,通过所述数据通道,将经过串行化处理后的数据按顺序依次推送至所述浏览器。
4.根据权利要求1所述的服务器主动推送数据的方法,其特征在于,所述服务器根据所述订阅请求,通过所述数据通道,向所述浏览器主动推送相应数据,具体包括:
所述服务器根据所述订阅请求,将相应数据转化为xml或Json或文本模式,通过所述数据通道向所述浏览器主动推送。
5.根据权利要求1-4中任一项所述的服务器主动推送数据的方法,其特征在于,所述方法还包括:
当所述浏览器请求断开与服务器的连接时,所述数据通道被取消。
6.一种服务器主动推送数据的系统,其特征在于,所述系统包括:浏览器和服务器;其中,
所述浏览器,用于发起注册请求,以连接服务器并接受所述服务器主动推送的数据,并在所述浏览器与服务器之间建立用于传输主动推送的数据的数据通道之后,发起订阅请求,所述订阅请求包含订阅数据的类型参数以及表示订阅内容的标识;
所述服务器,用于在所述浏览器注册成功后,在所述浏览器与服务器之间建立所述数据通道,并根据所述订阅请求,通过所述数据通道,向所述浏览器主动推送相应数据。
7.根据权利要求6所述的服务器主动推送数据的系统,其特征在于,当所述数据通道建立之后,所述浏览器还用于:向服务器发送周期性心跳信息,以表示所述浏览器与服务器之间的持续连接。
8.根据权利要求6所述的服务器主动推送数据的系统,其特征在于,当需要将多条数据同时推送至所述浏览器时,所述服务器还用于:
将所述多条数据进行串行化处理,通过所述数据通道,将经过串行化处理后的数据按顺序依次推送至所述浏览器。
9.根据权利要求6所述的服务器主动推送数据的系统,其特征在于,所述服务器还用于:根据所述订阅请求,将相应数据转化为xml或Json或文本模式,通过所述数据通道向所述浏览器主动推送。
10.根据权利要求6-9中任一项所述的服务器主动推送数据的系统,其特征在于,当所述浏览器请求断开与服务器的连接时,所述服务器还用于:取消所述数据通道。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010603239XA CN102035893A (zh) | 2010-12-23 | 2010-12-23 | 一种服务器主动推送数据的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010603239XA CN102035893A (zh) | 2010-12-23 | 2010-12-23 | 一种服务器主动推送数据的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102035893A true CN102035893A (zh) | 2011-04-27 |
Family
ID=43888209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010603239XA Pending CN102035893A (zh) | 2010-12-23 | 2010-12-23 | 一种服务器主动推送数据的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102035893A (zh) |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102685033A (zh) * | 2012-06-13 | 2012-09-19 | 苏州大学 | 一种基于身份加密的即时消息收发方法 |
CN102790683A (zh) * | 2011-05-16 | 2012-11-21 | 北大方正集团有限公司 | 一种实时行情数据处理方法、服务器及系统 |
CN103095551A (zh) * | 2011-11-01 | 2013-05-08 | 北京神州泰岳软件股份有限公司 | 一种实现查找联系人的方法和系统 |
CN103176795A (zh) * | 2013-02-04 | 2013-06-26 | 中国电子科技集团公司第二十八研究所 | 一种基于插件技术在信息分发软件数据过滤中的应用方法 |
CN103546584A (zh) * | 2013-11-13 | 2014-01-29 | 深圳市中兴移动通信有限公司 | 信息推送方法和系统 |
CN103559315A (zh) * | 2013-11-20 | 2014-02-05 | 上海华勤通讯技术有限公司 | 资讯筛选推送方法及装置 |
CN103618665A (zh) * | 2013-12-10 | 2014-03-05 | 南京守护宝信息技术有限公司 | 一种向客户端推送消息的方法 |
CN103884288A (zh) * | 2014-04-02 | 2014-06-25 | 广西我的科技有限公司 | 一种实时测量车辆长度、宽度或高度的系统以及方法 |
CN103973737A (zh) * | 2013-01-30 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 主动推送消息的方法、服务器及浏览器 |
CN103973469A (zh) * | 2013-01-30 | 2014-08-06 | 阿里巴巴集团控股有限公司 | Comet连接的维护方法及装置 |
CN104007955A (zh) * | 2013-02-26 | 2014-08-27 | 中国石油化工股份有限公司 | 一种用于钻井资料的即增即读的方法 |
CN104158722A (zh) * | 2014-07-21 | 2014-11-19 | 小米科技有限责任公司 | 用于轻应用的消息推送方法、装置、终端及服务器 |
CN104348523A (zh) * | 2013-07-25 | 2015-02-11 | 普天信息技术研究院有限公司 | 一种无线传感器节点的数据传输方法 |
CN104378436A (zh) * | 2014-11-20 | 2015-02-25 | 深圳市远行科技有限公司 | 一种基于服务器推送的信息推送系统及推送方法 |
CN104753707A (zh) * | 2013-12-29 | 2015-07-01 | 中国移动通信集团公司 | 一种系统维护方法及网络交换设备 |
CN104834728A (zh) * | 2015-05-14 | 2015-08-12 | 无锡天脉聚源传媒科技有限公司 | 一种订阅视频的推送方法及装置 |
CN104980333A (zh) * | 2014-04-14 | 2015-10-14 | 纬创资通股份有限公司 | Pushlet即时通信方法及平台 |
CN105208081A (zh) * | 2015-08-14 | 2015-12-30 | 深圳联友科技有限公司 | 一种通过订阅方式实现网络通信的方法和系统 |
CN105282227A (zh) * | 2015-09-06 | 2016-01-27 | 浪潮软件股份有限公司 | 一种高效率、高稳定性的页面实时数据刷新方法 |
CN105357286A (zh) * | 2015-10-20 | 2016-02-24 | 中国电子科技集团公司第二十八研究所 | 一种基于Web的实时消息定向推送方法 |
CN103780603B (zh) * | 2013-12-31 | 2016-10-19 | 电子科技大学 | 应用内轻量级推送方法 |
CN106407382A (zh) * | 2016-09-13 | 2017-02-15 | 广州爱电牛互联网科技有限公司 | 一种基于app与新能源汽车充电桩的交互系统及方法 |
CN107438084A (zh) * | 2016-05-25 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 多客户端数据同步方法和装置 |
CN107634929A (zh) * | 2016-07-18 | 2018-01-26 | 中兴通讯股份有限公司 | 业务处理方法及装置 |
CN108093067A (zh) * | 2017-12-25 | 2018-05-29 | 惠州Tcl家电集团有限公司 | 基于物联网的信息推送方法、云服务器及计算机存储介质 |
CN108833594A (zh) * | 2018-07-31 | 2018-11-16 | 浙江每日互动网络科技股份有限公司 | 服务端向移动终端推送信息的方法 |
CN108881395A (zh) * | 2018-05-23 | 2018-11-23 | 北京五八信息技术有限公司 | 消息推送方法、设备、消息管理器及计算机可读存储介质 |
CN109040326A (zh) * | 2018-11-02 | 2018-12-18 | 北京京东金融科技控股有限公司 | 推送消息的方法和装置 |
CN109587210A (zh) * | 2018-10-22 | 2019-04-05 | 太原市高远时代科技有限公司 | 一种多浏览器兼容的信息推送的实现方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119327A (zh) * | 2006-08-04 | 2008-02-06 | 陆悦 | 一种即时聊天实现系统和方法 |
CN101179435A (zh) * | 2007-11-22 | 2008-05-14 | Ut斯达康通讯有限公司 | 一种主动推送网管事件的方法及网络管理系统 |
CN101753621A (zh) * | 2009-12-24 | 2010-06-23 | 中兴通讯股份有限公司 | 一种服务器主动推送数据给浏览器的方法及系统 |
CN101883086A (zh) * | 2010-03-15 | 2010-11-10 | 浪潮集团山东通用软件有限公司 | 一种ASP.NET环境下Comet功能的实现方法 |
-
2010
- 2010-12-23 CN CN201010603239XA patent/CN102035893A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119327A (zh) * | 2006-08-04 | 2008-02-06 | 陆悦 | 一种即时聊天实现系统和方法 |
CN101179435A (zh) * | 2007-11-22 | 2008-05-14 | Ut斯达康通讯有限公司 | 一种主动推送网管事件的方法及网络管理系统 |
CN101753621A (zh) * | 2009-12-24 | 2010-06-23 | 中兴通讯股份有限公司 | 一种服务器主动推送数据给浏览器的方法及系统 |
CN101883086A (zh) * | 2010-03-15 | 2010-11-10 | 浪潮集团山东通用软件有限公司 | 一种ASP.NET环境下Comet功能的实现方法 |
Non-Patent Citations (3)
Title |
---|
《http://www.ibm.com/developerworks/cn/web/wa-lo-comet/》 20070831 周婷 Comet:基于 HTTP 长连接的"服务器推"技术 , * |
周婷: "Comet:基于 HTTP 长连接的"服务器推"技术", 《HTTP://WWW.IBM.COM/DEVELOPERWORKS/CN/WEB/WA-LO-COMET/》 * |
深蓝: "基于WEB的实时事件通知方式服务器推送", 《深蓝的日志 - 网易博客,HTTP://BLOG.163.COM/PUGOOD@126/BLOG/STATIC/1344175932010514101559210/》 * |
Cited By (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102790683A (zh) * | 2011-05-16 | 2012-11-21 | 北大方正集团有限公司 | 一种实时行情数据处理方法、服务器及系统 |
CN103095551A (zh) * | 2011-11-01 | 2013-05-08 | 北京神州泰岳软件股份有限公司 | 一种实现查找联系人的方法和系统 |
CN102685033A (zh) * | 2012-06-13 | 2012-09-19 | 苏州大学 | 一种基于身份加密的即时消息收发方法 |
CN103973469B (zh) * | 2013-01-30 | 2017-09-15 | 阿里巴巴集团控股有限公司 | Comet连接的维护方法及装置 |
WO2014117554A1 (en) * | 2013-01-30 | 2014-08-07 | Tencent Technology (Shenzhen) Company Limited | Method, server and browser for pushing message actively |
CN103973469A (zh) * | 2013-01-30 | 2014-08-06 | 阿里巴巴集团控股有限公司 | Comet连接的维护方法及装置 |
CN103973737A (zh) * | 2013-01-30 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 主动推送消息的方法、服务器及浏览器 |
CN103176795A (zh) * | 2013-02-04 | 2013-06-26 | 中国电子科技集团公司第二十八研究所 | 一种基于插件技术在信息分发软件数据过滤中的应用方法 |
CN103176795B (zh) * | 2013-02-04 | 2016-03-02 | 中国电子科技集团公司第二十八研究所 | 一种基于插件技术在信息分发软件数据过滤中的应用方法 |
CN104007955A (zh) * | 2013-02-26 | 2014-08-27 | 中国石油化工股份有限公司 | 一种用于钻井资料的即增即读的方法 |
CN104348523B (zh) * | 2013-07-25 | 2017-04-12 | 普天信息技术研究院有限公司 | 一种无线传感器节点的数据传输方法 |
CN104348523A (zh) * | 2013-07-25 | 2015-02-11 | 普天信息技术研究院有限公司 | 一种无线传感器节点的数据传输方法 |
CN103546584A (zh) * | 2013-11-13 | 2014-01-29 | 深圳市中兴移动通信有限公司 | 信息推送方法和系统 |
CN103546584B (zh) * | 2013-11-13 | 2018-08-14 | 努比亚技术有限公司 | 信息推送方法和系统 |
CN103559315A (zh) * | 2013-11-20 | 2014-02-05 | 上海华勤通讯技术有限公司 | 资讯筛选推送方法及装置 |
CN103559315B (zh) * | 2013-11-20 | 2017-01-04 | 上海华勤通讯技术有限公司 | 资讯筛选推送方法及装置 |
CN103618665A (zh) * | 2013-12-10 | 2014-03-05 | 南京守护宝信息技术有限公司 | 一种向客户端推送消息的方法 |
CN104753707A (zh) * | 2013-12-29 | 2015-07-01 | 中国移动通信集团公司 | 一种系统维护方法及网络交换设备 |
CN104753707B (zh) * | 2013-12-29 | 2018-05-08 | 中国移动通信集团公司 | 一种系统维护方法及网络交换设备 |
CN103780603B (zh) * | 2013-12-31 | 2016-10-19 | 电子科技大学 | 应用内轻量级推送方法 |
CN103884288A (zh) * | 2014-04-02 | 2014-06-25 | 广西我的科技有限公司 | 一种实时测量车辆长度、宽度或高度的系统以及方法 |
CN104980333B (zh) * | 2014-04-14 | 2018-03-27 | 纬创资通股份有限公司 | Pushlet即时通信方法及平台 |
CN104980333A (zh) * | 2014-04-14 | 2015-10-14 | 纬创资通股份有限公司 | Pushlet即时通信方法及平台 |
CN104158722A (zh) * | 2014-07-21 | 2014-11-19 | 小米科技有限责任公司 | 用于轻应用的消息推送方法、装置、终端及服务器 |
CN104378436A (zh) * | 2014-11-20 | 2015-02-25 | 深圳市远行科技有限公司 | 一种基于服务器推送的信息推送系统及推送方法 |
CN104834728B (zh) * | 2015-05-14 | 2018-03-09 | 无锡天脉聚源传媒科技有限公司 | 一种订阅视频的推送方法及装置 |
CN104834728A (zh) * | 2015-05-14 | 2015-08-12 | 无锡天脉聚源传媒科技有限公司 | 一种订阅视频的推送方法及装置 |
CN105208081A (zh) * | 2015-08-14 | 2015-12-30 | 深圳联友科技有限公司 | 一种通过订阅方式实现网络通信的方法和系统 |
CN105282227A (zh) * | 2015-09-06 | 2016-01-27 | 浪潮软件股份有限公司 | 一种高效率、高稳定性的页面实时数据刷新方法 |
CN105357286B (zh) * | 2015-10-20 | 2019-02-05 | 中国电子科技集团公司第二十八研究所 | 一种基于Web的实时消息定向推送方法 |
CN105357286A (zh) * | 2015-10-20 | 2016-02-24 | 中国电子科技集团公司第二十八研究所 | 一种基于Web的实时消息定向推送方法 |
CN107438084A (zh) * | 2016-05-25 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 多客户端数据同步方法和装置 |
CN107438084B (zh) * | 2016-05-25 | 2020-12-22 | 北京京东尚科信息技术有限公司 | 多客户端数据同步方法和装置 |
CN107634929A (zh) * | 2016-07-18 | 2018-01-26 | 中兴通讯股份有限公司 | 业务处理方法及装置 |
CN106407382A (zh) * | 2016-09-13 | 2017-02-15 | 广州爱电牛互联网科技有限公司 | 一种基于app与新能源汽车充电桩的交互系统及方法 |
CN108093067A (zh) * | 2017-12-25 | 2018-05-29 | 惠州Tcl家电集团有限公司 | 基于物联网的信息推送方法、云服务器及计算机存储介质 |
CN108881395A (zh) * | 2018-05-23 | 2018-11-23 | 北京五八信息技术有限公司 | 消息推送方法、设备、消息管理器及计算机可读存储介质 |
CN108881395B (zh) * | 2018-05-23 | 2021-11-23 | 北京五八信息技术有限公司 | 消息推送方法、设备、消息管理器及计算机可读存储介质 |
CN108833594A (zh) * | 2018-07-31 | 2018-11-16 | 浙江每日互动网络科技股份有限公司 | 服务端向移动终端推送信息的方法 |
CN108833594B (zh) * | 2018-07-31 | 2019-11-12 | 浙江每日互动网络科技股份有限公司 | 服务端向移动终端推送信息的方法 |
CN109587210A (zh) * | 2018-10-22 | 2019-04-05 | 太原市高远时代科技有限公司 | 一种多浏览器兼容的信息推送的实现方法 |
CN109587210B (zh) * | 2018-10-22 | 2021-04-20 | 太原市高远时代科技有限公司 | 一种多浏览器兼容的信息推送的实现方法 |
CN109040326A (zh) * | 2018-11-02 | 2018-12-18 | 北京京东金融科技控股有限公司 | 推送消息的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102035893A (zh) | 一种服务器主动推送数据的方法和系统 | |
US9578081B2 (en) | System and method for providing an actively invalidated client-side network resource cache | |
US8799400B2 (en) | System and method for managing multiple queues of non-persistent messages in a networked environment | |
US10846107B2 (en) | Multi-window architecture and data communication for a remote access application session | |
US8819560B2 (en) | Dispatching events to multiple browser windows/tabs using a single connection | |
CN110730105B (zh) | 图片数据传输方法、装置、设备及存储介质 | |
CN108833950B (zh) | 一种弹幕消息下发方法、服务器、系统和存储介质 | |
CN104253788B (zh) | 一种数据处理方法、客户端、页面引擎及系统 | |
EP3836484B1 (en) | Method for transmitting live message, apparatus, electronic device, medium and computer program product | |
CN108055304B (zh) | 远程数据的同步方法、装置、服务器、设备和存储介质 | |
CN111064771B (zh) | 一种网络请求处理方法及系统 | |
CN107231290A (zh) | 一种即时通信方法和系统 | |
CN109788301A (zh) | 一种流媒体的直播方法、终端设备、直播系统及计算机可读存储介质 | |
CN111200606A (zh) | 深度学习模型任务处理方法、系统、服务器及存储介质 | |
CN110557321B (zh) | 一种信息传输方法、网络设备及终端 | |
CN107391274B (zh) | 离线消息的处理方法及装置 | |
CN112511595B (zh) | 一种消息推送方法及消息服务系统 | |
CN103780680B (zh) | 一种基于jms消息总线的服务器实时推送系统及方法 | |
CN110290139B (zh) | 消息传输方法及装置 | |
US20100250684A1 (en) | High availability method and apparatus for shared resources | |
CN113535371A (zh) | 一种多线程异步加载资源的方法和装置 | |
CN108076111B (zh) | 一种在大数据平台中分发数据的系统及方法 | |
CN116308671A (zh) | 基于mqtt协议的在线竞价方法、电子设备及存储介质 | |
CN107070872B (zh) | 一种用于客户端的数据处理方法和装置 | |
CN113986582A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110427 |