CN103297453B - 实现即时通讯的方法、浏览器端和系统 - Google Patents

实现即时通讯的方法、浏览器端和系统 Download PDF

Info

Publication number
CN103297453B
CN103297453B CN201210045473.4A CN201210045473A CN103297453B CN 103297453 B CN103297453 B CN 103297453B CN 201210045473 A CN201210045473 A CN 201210045473A CN 103297453 B CN103297453 B CN 103297453B
Authority
CN
China
Prior art keywords
browser end
message
page
homepage
long connection
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.)
Active
Application number
CN201210045473.4A
Other languages
English (en)
Other versions
CN103297453A (zh
Inventor
杨航
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201210045473.4A priority Critical patent/CN103297453B/zh
Publication of CN103297453A publication Critical patent/CN103297453A/zh
Priority to HK13112138.3A priority patent/HK1184930A1/zh
Application granted granted Critical
Publication of CN103297453B publication Critical patent/CN103297453B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本申请提供了一种即时通讯的方法、浏览器端和系统,属于即时通讯领域。该方法包括:加载浏览器端页面;在所述加载的浏览器端页面中确定浏览器端主页面和浏览器端从属页面;在所述浏览器端主页面和长连接服务器之间建立一个长连接;所述浏览器端通过所述长连接与所述长连接服务器和各个应用服务器进行即时通讯。该浏览器端包括:加载模块、确定模块、长连接建立模块和通讯模块。该系统包括:浏览器端、长连接服务器以及与长连接服务器通讯的各个应用服务器。本申请的技术方案可以减轻服务器端的负载压力,降低系统的维护成本,提高浏览器端的性能。

Description

实现即时通讯的方法、浏览器端和系统
技术领域
本申请涉及即时通讯领域,特别涉及一种实现基于浏览器端/服务器端结构的即时通讯的方法、浏览器端和系统。
背景技术
B/S(Browser/Server)结构即浏览器端和服务器端结构,它是随着Internet技术的兴起,对客户端端/服务器端(Client/Server,C/S)结构的一种改进的结构。在这种结构下,用户工作界面是通过浏览器端来实现,极少部分事务逻辑在浏览器端实现,但是主要事务逻辑在服务器端实现。
对于多应用的B/S结构的大型网站,在多个应用均需要基于服务器端进行即时通讯时,如何构建基于多个用户,每个用户基于多个浏览器端页面或者基于同浏览器端页面的多个标签(Tab)页的即时通讯是即时通讯领域一个非常重要的课题。
现有技术提供了如下三种方案:
第一、服务器端为每个应用提供独立的接口,而每个浏览器端页面包括多个应用,这样,浏览器端的每个应用需要单独轮询各个接口以实现即时消息的发送和接收,典型的应用如网页版淘宝旺旺。但这种方案的缺陷在于,向服务器端发送的无用轮询请求很多,服务器端的负载极大,不能做到完全即时。
第二、每个浏览器端可包括多个浏览器端页面,且每个浏览器端页面包括多个应用,服务器端为每个浏览器端页面或浏览器端应用提供独立的长连接,每个浏览器端页面或应用均需要维护各自的长连接,典型的应用如新浪微博。但这种方案的缺陷在于,一个用户若开启多个浏览器端页面或应用,则重复长连接多,服务器需要维护多个长连接,维护成本高,而且各个长连接间的数据难以准确同步。
第三、一个应用只在一个页面打开,典型的应用如Gmail等。但这种方案的缺陷在于,限制应用只在一个页面中打开,不存在多个页面的问题,无需维护多个长连接,但是用户使用习惯受到影响。对于多个应用的页面无法统一整合成一个页面的多应用网站,有一定的局限性。
发明内容
为了减轻服务器端的负载压力,降低系统成本,提高浏览器端的性能,本申请提供了实现即时通讯的方法、浏览器端和系统,技术方案如下:
一种实现即时通讯的方法,包括:
加载浏览器端页面;
在所述加载的浏览器端页面中确定浏览器端主页面和浏览器端从属页面;
在所述浏览器端主页面和长连接服务器之间建立一个长连接;以及
所述浏览器端通过所述长连接与所述长连接服务器和各个应用服务器进行即时通讯。
一种浏览器端,包括:
加载模块,用于加载浏览器端页面;
确定模块,用于在所述加载的浏览器端页面中确定浏览器端主页面和浏览器端从属页面;
长连接建立模块,用于在所述浏览器端主页面和长连接服务器之间建立一个长连接;以及
通讯模块,用于通过所述长连接与所述长连接服务器和各个应用服务器进行即时通讯。
一种实现即时通讯的系统,包括:上述浏览器端、长连接服务器以及与所述长连接服务器通讯的各个应用服务器。
在本申请中,多个浏览器端和多个应用服务器端之间只建立了一个长连接,无需多个消息接口或是建立和维护多个长连接,这样无论浏览器端有多少页面或多少个应用,浏览器端和服务器端之间的即时通讯只需要通过该长连接即可完成,从而减轻了服务器端的负载压力,降低了系统的维护成本,提高了浏览器端的性能。
通过以下参照附图对本申请实施例的说明,本申请的上述以及其它目的、特征和优点将更加明显。
附图说明
下面将参照所附附图来描述本申请的实施例,其中:
图1是本申请的实现即时通讯的方法的流程图;
图2是本申请的实现即时通讯的系统架构图;
图3是本申请的一种浏览器端的结构图;
图4是本申请的一种实现即时通讯的系统的结构图。
具体实施方式
下面结合附图详细描述本申请的具体实施例。应当注意,这里描述的实施例只用于举例说明,并不用于限制本申请。
参考图1,本申请提供了一种实现即时通讯的方法,该方法包括:
步骤101,加载浏览器端页面。
具体地,参考图2,浏览器端接收用户输入的URL地址,根据该URL地址加载浏览器端页面。需要说明的是,用户可以多次输入相同的URL地址,以针对同一应用打开多个浏览器端页面(浏览器端标签页视为浏览器端页面),或是输入多个不同的URL地址,以针对不同的应用对应打开不同的浏览器端页面。其中,所述应用一般可以理解为通过一些程序代码实现某一个或者某些功能。其中,应用与页面的关系可以是一一对应关系,也可以是多对一或一对多的关系。现有技术中,基于浏览器端的应用有很多,例如,基于浏览器端的淘宝旺旺、网页QQ、新浪微博等。通过对浏览器端增加应用,使得浏览器端网页实际上成为应用,并且该浏览器端网页向服务器端发送消息或是从服务器端接收消息。
步骤102,在加载的浏览器端页面中确定浏览器端主页面和浏览器端从属页面。
在加载浏览器端页面过程中,会先加载前端调用组件。其中,前端调用组件可以是浏览器端页面的一部分,也可以独立于浏览器端页面。在加载完前端调用组件后,运行该前端调用组件,在运行过程中,前端调用组件判断是否存在前端消息即时同步组件(localconnect),如果有,则判断为浏览器端主页面。能与长连接服务器建立长连接的浏览器端页面可称为浏览器端主页面,而不能与长连接服务器建立长连接的浏览器端页面可称为浏览器端从属页面。具体地,用户会先后加载多个浏览器端页面,其中,在加载第一个浏览器端页面时,由于当前只有一个浏览器端页面,前端调用组件默认地将该第一个浏览器端页面确定为主页面,具体地,可以将第一个浏览器页面中的用于标识主页面的预设字段设置为“true”,以此来标识该第一个浏览器端页面为主页面。随后,在加载第二个浏览器端页面时,第二个浏览器端页面的前端调用组件会判断是否已经有浏览器端主页面,即判断已经加载的浏览器端页面的用于标识主页面的预设字段是否为“true”,如果是,则判断已经确定了浏览器端主页面。在本实施例中,由于已经将第一个浏览器端页面确定为主页面,此时,第二个浏览器端页面的前端调用组件将该第二个浏览器端页面中的用于标识主页面的预设字段(与第一个浏览器端页面的相应字段相同)设为“false”,即确定该第二浏览器端页面为从属页面。以此类推,确定其他加载的浏览器端页面是否可以为浏览器端主页面的原理同理,在此不再赘述。
当然,也可以采用其他方式,例如可以采用弹出对话框的方式,具体地,在加载浏览器端页面时,弹出对话框,在对话框中提供用户是否选择当前浏览器端页面为主页面的选项,当用户选择肯定的选项时,则确定当前浏览器端页面为主页面,后续在加载其他浏览器端页面时,则可以不再弹出对话框,而是直接将后续其他浏览器端页面设置为从属页面。还可以在加载浏览器端页面时不确定浏览器端主页面,只是在加载完全部浏览器端页面后,由各个浏览器端页面随机确定为主页面。本发明的保护范围并不限于以上举例。
总之,浏览器端只需确定一个主页面即可。优选地,可以将第一个加载的浏览器端页面确定为主页面,而将随后的加载的浏览器端页面确定为从属页面。作为另一种实施方式,也可以将第二个浏览器端页面、第三个浏览器端页面或是第N(N为正整数)个浏览器端页面作为主页面。
如果前端调用组件判断不存在前端消息即时同步组件,则创建该前端消息即时同步组件,并确定浏览器端主页面和从属页面,具体如何确定浏览器端主页面和从属页面可以参见以上描述,在此不再赘述。
步骤103,在浏览器端主页面和长连接服务器之间建立一个长连接。
在前端调用组件确定浏览器端主页面和从属页面后,由浏览器端主页面向服务器端的长连接服务器发送长连接建立请求,长连接服务器接收该请求,从而建立浏览器端主页面和长连接服务器之间的长连接。需要说明的是,前端调用组件和前端消息即时同步组件只是为了本申请描述方便,其他任何可以实现同样功能的模块或单元也可以替代前端调用组件或前端消息即时同步组件。
在运行前端调用组件后,浏览器端页面会继续加载各种应用,例如加载网页QQ,网页淘宝旺旺、新浪微博等,并向前端调用组件进行注册,以告知前端调用组件该浏览器页面有对应的应用。
在本实施例中,浏览器端加载若干个应用生成四个浏览器端页面,通过接受用户指定,预设指定信息或其他方式将其中一个浏览器端页面确定为主页面,并将其他三个页面,分别为页面1、页面2和页面3作为从属页面,并建立主页面和服务器端的长连接服务器之间的长连接。通过前端消息即时同步组件,主页面与从属页面相关联。每个页面(包括主页面和从属页面)可以加载多个应用,每个页面中的前端调用组件可以仅仅注册本页面的应用,也可以注册其他页面的应用。
步骤104,通过该长连接与长连接服务器和各个应用服务器实现即时通讯。
其中,长连接可以通过但不限于websocket、flashsocket或httptrunk等方式来实现。长连接服务器可以通过在服务器中加载长连接软件即可完成构建,长连接软件包括但不限于netty软件等。
其中,通过该长连接与长连接服务器和各个应用服务器实现即时通讯包括但不限于以下场景:
第一、客户端之间通过长连接服务器和各个应用服务器进行即时通讯。
具体地,第一用户通过第一客户端的浏览器端主页面触发第一消息。主页面的前端调度组件将第一消息封装后,直接通过长连接发送给长连接服务器,并同时通过前端消息即时同步组件将该第一消息发送(例如,同步发送)给页面1、页面2和页面3,与主页面相同应用类型的从属页面会显示该第一消息,与主页面不同应用类型的从属页面不显示该第一消息,其中该封装的第一消息携带标识消息类型的字段,例如,网页淘宝旺旺消息用0标识,网页QQ消息用1标识,新浪微博消息用2标识,Gmail消息用3标识。例如,主页面为网页QQ应用,则第一消息为QQ消息;页面1为网页淘宝旺旺应用,页面2为新浪微博应用,页面3为Gmail邮件应用。主页面的前端调用组件直接通过长连接将QQ消息封装后发送给长连接服务器,并同时通过前端消息即时同步组件将该QQ消息发送给页面1、页面2和页面3,由于页面1、页面2和页面3根据标识消息类型的字段判断该QQ消息与主页面属于不同的应用类型,因此,页面1、页面2和页面3并不显示该QQ消息。又如,主页面为网页QQ应用,页面1和页面2为网页QQ应用,页面3为新浪微博应用,主页面的前端调用组件通过前端消息即时同步组件将该QQ消息发送给页面1、页面2和页面3后,由于页面1、页面2根据标识消息类型字段判断与主页面属于相同的应用类型,页面3与主页面属于不同的应用类型,此时,页面1和页面2显示该QQ消息,页面3不显示该QQ消息。作为另一种实施方式,主页面的前端调用组件会先判断第一消息的类型,然后根据注册的应用类型,将该第一消息只发送给与主页面相同应用类型的从属页面。例如,主页面为网页QQ应用,页面1和页面2为网页QQ应用,页面3为新浪微博应用,主页面的前端调用组件判断第一消息的应用类型为网页QQ应用,然后根据注册的应用类型可知,页面1和页面2也为网页QQ应用,而页面3为新浪微博应用,此时,主页面的前端调用组件只将该QQ消息发送给页面1和页面2,而不发送给页面3。此时,页面1和页面2显示该QQ消息,页面3不显示该QQ消息。
此外,第一用户也可以通过第一客户端的某一浏览器端从属页面触发第一消息。从属页面的前端调度组件将该第一消息发送给,并由浏览器端主页面通过长连接将该第一消息封装后发送给长连接服务器,同时,主页面的前端调用组件通过前端消息即时同步组件将该第一消息发送(例如,同步发送)给其他从属页面。关于主页面如何通过前端消息即时同步组件将该第一消息同步发送给其他从属页面以及如何进行显示,可以参见上述描述,在此不再赘述。
服务器端的长连接服务器接收到该第一消息后,对第一消息进行解封装,并根据第一消息的消息标识来判断消息的类型。例如,如果长连接服务器在从解封装的消息中提取出的消息标识为0,则判断该消息为网页淘宝旺旺消息;如果提取出的消息标识为1,则判断该消息为网页QQ消息;如果提取出的消息标识为2,则判断该消息为新浪微博消息;如果提取出的消息标识为3,则判断该消息为Gmail消息。然后,长连接服务器通过异步队列服务器或同步调用服务器(该异步队列服务器或同步调用服务器也可替换为集成在长连接服务器等中的具有对应的异步队列调用功能或同步调用功能的组件)将解封装的消息发送给对应的应用服务器,由该应用服务器将该消息发送给通讯对方。例如,如果该消息为淘宝旺旺消息,则将该消息发送给淘宝旺旺应用服务器,并由该淘宝旺旺应用服务器转发给第二客户端;如果该消息为网页QQ,则将该消息发送给QQ应用服务器,并由该QQ应用服务器转发给第二客户端;如果该消息为新浪微博,则将该消息发送给微博应用服务器,并由该微博应用服务器转发给第二客户端;如果该消息为Gmail消息,则将该消息发送给Gmail应用服务器,并由该Gmail应用服务器转发给第二客户端。
同理,第二客户端在接收到第一消息后会做出反馈,生成第二消息。由于第二客户端的浏览器端具有与第一客户端的浏览器端的相类似的结构,因此,该第二客户端会将第二消息发送给服务器端的对应的应用服务器。该应用服务器通过异步队列服务器或同步调用服务器(该异步队列服务器或同步调用服务器也可替换为集成在长连接服务器等中的具有对应的异步队列调用功能或同步调用功能的组件)将第二消息发送给长连接服务器。长连接服务器对第二消息进行封装,并根据消息类型选择相应的长连接,将该封装的消息推送给第一客户端的浏览器端主页面。第一客户端的浏览器端主页面接收到该第二消息,对该第二消息进行解封装,并提取出用于标识消息类型的字段,主页面的前端调用组件如果根据该字段判断该第二消息是对应于浏览器端主页面的应用,则显示该第二消息,如果不是,则不显示该第二消息。同时,主页面的前端调用组件将解封装的第二消息通过前端消息即时同步组件发送给从属页面。例如,参见图2,在本实施例中,主页面为网页QQ应用,页面1为网页淘宝旺旺应用,页面2为新浪微博应用,页面3为Gmail应用,第二消息为网页QQ消息,此时,主页面会显示该第二消息,主页面的前端调用组件通过前端消息即时同步组件将该网页QQ消息同步发送给页面1、页面2和页面3,此时页面1、页面2和页面3根据标识消息类型的字段判断本页面的应用类型与该QQ消息的应用类型不同,因此并不显示该网页QQ消息。作为另一种实施方式,主页面的前端调用组件会根据标识消息类型的字段判断第二消息的类型,并根据注册的应用类型的信息确定是否将该第二消息发送给对应的从属页面,如果从属页面与主页面的应用类型相同,则将第二消息给该从属页面;如果从属页面与主页面的应用类型不相同,则不将该第二消息发送给该从属页面。例如,主页面的前端调用组件判断该第二消息为网页QQ消息,由于前端调用组件注册有页面1、页面2和页面3的应用类型,分别为网页淘宝旺旺应用、新浪微博应用、网页QQ应用,此时,主页面的前端调用组件可以不将该第二消息同步发送给页面1、页面2,而只将该QQ消息发送给页面3,由页面3显示该QQ消息,这样可以节省运算成本。
以上描述只是关于两个客户端之间的即时通讯过程,对于一个客户端与多个客户端之间的即时通讯过程,以及多个客户端与多个客户端之间的即时通讯过程与两个客户端之间的即时通讯过程类似,在此不再赘述。
第二、客户端与长连接服务器和各个应用服务器之间的即时通讯
具体地,用户通过客户端的浏览器端仅向长连接服务器和各个应用服务器发送消息,或各个应用服务器通过长连接服务器向客户端推送消息,具体的发送消息和推送消息的过程可以参见第一种场景,在此不再赘述。典型的应用例如是:用户通过客户端的浏览器端经由长连接并利用长连接服务器向各个应用服务器发送一些统计信息或报告信息;或是,各个应用服务器统计用户使用QQ应用的时间,在达到一定期限后,会提升用户的级别,并将提升后级别利用长连接服务器经由长连接通知给客户端。
此外,当浏览器端主页面消失时,其他浏览器端从属页面会随机成为浏览器端主页面或根据预设指定信息使确定的浏览器端从属页面成为浏览器端主页面,例如,参见图2,当主页面消失时,可以随机使页面2成为浏览器端主页面,或是根据预设指定信息使页面3成为浏览器端主页面;当浏览器端主页面和若干浏览器端从属页面都消失时,长连接断开,长连接服务器销毁该长连接。
参见图3,本申请提供了一种浏览器端,包括:
加载模块,用于加载浏览器端页面;其中,如何加载浏览器端页面可以参考方法实施例的步骤101,在此不再赘述。
确定模块,用于在加载的浏览器端页面中确定浏览器端主页面和浏览器端从属页面;其中,如何确定浏览器端主页面和浏览器端从属页面可以参考方法实施例的步骤101,在此不再赘述。
长连接建立模块,用于在浏览器端主页面和长连接服务器之间建立一个长连接;以及
通讯模块,用于通过长连接与长连接服务器和各个应用服务器进行即时通讯。
在另一个优选的实施例中,通讯模块包括:
第一获取模块,用于获取用户通过浏览器端主页面触发的第一消息;以及
第一发送模块,用于由浏览器端主页面通过长连接将第一消息封装后发送给长连接服务器,由长连接服务器将封装的第一消息解封装后发送给各个应用服务器,以及由浏览器端主页面将第一消息发送给浏览器端从属页面;
或通讯模块包括:
第二获取模块,用于获取用户通过确定的浏览器端从属页面触发的第二消息;以及
第二发送模块,用于由浏览器端从属页面将第二消息发送给浏览器端主页面,并浏览器端主页面通过长连接将第二消息封装后发送给长连接服务器,由长连接服务器将封装的第二消息解封装后发送给各个应用服务器,以及由浏览器端主页面将第二消息发送给其他浏览器端从属页面。
其中,如何由浏览器端主页面通过长连接与长连接服务器和各个应用服务器之间进行通讯,以及如何进行浏览器端主页面和浏览器端从属页面之间的通信,可以参见方法实施例的步骤102,在此不再赘述。
在另一个优选的实施例中,第一发送模块,用于判断浏览器端从属页面的应用类型是否与浏览器端主页面的应用类型相同,如果相同,则由浏览器端主页面将第一消息发送给与浏览器端主页面的应用类型相同的浏览器端从属页面;或
第二发送模块,用于判断浏览器端从属页面的应用类型是否与浏览器端主页面的应用类型相同,如果相同,则由浏览器端主页面将第二消息发送给与浏览器端主页面的应用类型相同的浏览器端从属页面。
其中,如何进行浏览器端主页面和浏览器端从属页面之间的通信,可以参见方法实施例的步骤102,在此不再赘述。
在另一个优选的实施例中,通讯模块包括:
接收模块,用于利用浏览器端主页面接收各个应用服务器利用长连接服务器通过长连接发送的第三消息;以及
第三发送模块,用于由浏览器端主页面将第三消息发送给浏览器端从属页面。
在另一个优选的实施例中,第三发送模块,用于判断浏览器端从属页面的应用类型是否与浏览器端主页面的应用类型相同,如果相同,则由浏览器端主页面将第三消息发送给与浏览器端主页面的应用类型相同的浏览器端从属页面。其中,如何进行浏览器端主页面和浏览器端从属页面之间的通信,可以参见方法实施例的步骤102,在此不再赘述。
在另一个优选的实施例中,该浏览器端还包括:
重设模块,用于当浏览器端主页面消失时,随机使浏览器端从属页面成为浏览器端主页面或根据预设指定信息使确定的浏览器端从属页面成为浏览器端主页面;和/或
长连接断开模块,用于当浏览器端主页面和浏览器端从属页面消失时,断开所述长连接。
参见图4,本申请提供了一种实现即时通讯的系统,包括:
浏览器端、长连接服务器以及与长连接服务器通讯的各个应用服务器;其中,浏览器端的结构可以参见上述关于浏览器端的实施例,在此不再赘述。
在本申请中,浏览器端和服务器端之间只建立了一个长连接,无需多个消息接口或是建立和维护多个长连接,这样无论浏览器端有多少页面或多少个应用,浏览器端和服务器端之间的即时通讯只需要通过该长连接即可完成,从而减轻了服务器端的负载压力,降低了系统的维护成本,提高了浏览器端的性能。同时,通过主从页面的设置,不用限制一个应用只能在一个页面打开,从而可以只需维护一个长连接,适应了用户习惯,还可以应用于多个应用而无法整合成一个页面的多应用网站。同时,通过在页面中注册应用,使得应用接入简单,适应性和扩展性强,增强了用户体验。
本申请提供的实现即时通讯的方法及其步骤可以由具有数据处理能力的一个或多个处理设备例如一个或多个计算机运行计算机可执行指令(该计算机可执行指令反映了本申请提出的实现即时通讯方法的思想)来实现。该处理设备可以包括存储前述计算机可执行指令的存储介质以及中央处理器。
本申请的浏览器端可以是运行前述计算机可执行指令的一个或多个处理设备。该浏览器端中的各个模块可以为该处理设备运行前述计算机可执行指令时具有相应功能的设备组件。
虽然已参照典型实施例描述了本申请,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本申请能够以多种形式具体实施而不脱离申请的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。

Claims (15)

1.一种实现即时通讯的方法,其特征在于,包括:
加载浏览器端页面;
在所述加载的浏览器端页面中确定浏览器端主页面和浏览器端从属页面;
在所述浏览器端主页面和长连接服务器之间建立一个长连接;以及
所述浏览器端通过所述长连接与所述长连接服务器和各个应用服务器进行即时通讯,
其中,所述主页面与所述从属页面分别加载应用,所述应用均通过所述长连接与所述长连接服务器和各个应用服务器进行即时通讯。
2.根据权利要求1所述的方法,其特征在于,所述浏览器端通过所述长连接与所述长连接服务器和各个应用服务器进行即时通讯的步骤包括:
获取用户通过所述浏览器端主页面触发的第一消息,由所述浏览器端主页面通过所述长连接将所述第一消息封装后发送给所述长连接服务器,由所述长连接服务器将所述封装的第一消息解封装后转发给各个应用服务器,并由所述浏览器端主页面将所述第一消息发送给所述浏览器端从属页面;或
获取用户通过确定的浏览器端从属页面触发的第二消息,由所述确定的浏览器端从属页面将所述第二消息发送给所述浏览器端主页面,由所述浏览器端主页面通过所述长连接将所述第二消息封装后发送给所述长连接服务器,由所述长连接服务器将所述封装的第二消息解封装后转发给各个应用服务器,并由所述浏览器端主页面将所述第二消息发送给其他浏览器端从属页面。
3.根据权利要求2所述的方法,其特征在于,
将所述第一消息发送给所述浏览器端从属页面的步骤包括:
判断所述浏览器端从属页面的应用类型是否与所述浏览器端主页面的应用类型相同,如果相同,则由所述浏览器端主页面将所述第一消息发送给与所述浏览器端主页面的应用类型相同的浏览器端从属页面;如果不相同,则不发送所述第一消息;或
将所述第二消息发送给其他浏览器端从属页面的步骤包括:
判断所述浏览器端从属页面的应用类型是否与所述浏览器端主页面的应用类型相同,如果相同,则由所述浏览器端主页面将所述第二消息发送给与所述浏览器端主页面的应用类型相同的其他浏览器端从属页面;如果不相同,则不发送所述第二消息。
4.根据权利要求2所述的方法,其特征在于,
由所述长连接服务器将所述封装的第一消息解封装后转发给各个应用服务器的步骤包括:
所述长连接服务器根据所述第一消息的类型将所述封装的第一消息解封装后发送给该消息类型对应的应用服务器;
或由所述长连接服务器将所述封装的第二消息解封装后转发给各个应用服务器的步骤包括:
所述长连接服务器根据所述第二消息的类型将所述封装的第二消息解封装后发送给该消息类型对应的应用服务器。
5.根据权利要求1所述的方法,其特征在于,所述浏览器端通过所述长连接与所述长连接服务器和各个应用服务器进行即时通讯的步骤包括:
由所述浏览器端主页面接收所述各个应用服务器利用所述长连接服务器通过所述长连接发送的第三消息;以及
由所述浏览器端主页面将所述第三消息发送给所述浏览器端从属页面。
6.根据权利要求5所述的方法,其特征在于,由所述浏览器端主页面将所述第三消息发送给所述浏览器端从属页面的步骤包括:
判断所述浏览器端从属页面的应用类型是否与所述浏览器端主页面的应用类型相同,如果相同,则由所述浏览器端主页面将所述第三消息发送给与所述浏览器端主页面的应用类型相同的浏览器从属页面;如果不相同,则不发送所述第三消息。
7.根据权利要求5所述的方法,其特征在于,所述第三消息来自于即时通讯对方或由所述各个应用服务器自身生成。
8.根据权利要求1至7任意一项所述的方法,其特征在于,还包括:
当所述浏览器端主页面消失时,随机使所述浏览器端从属页面成为浏览器端主页面或根据预设指定信息使确定的所述浏览器端从属页面成为浏览器端主页面;
当所述浏览器端主页面和所述浏览器端从属页面消失时,断开所述长连接。
9.一种浏览器端,其特征在于,包括:
加载模块,用于加载浏览器端页面;
确定模块,用于在所述加载的浏览器端页面中确定浏览器端主页面和浏览器端从属页面;
长连接建立模块,用于在所述浏览器端主页面和长连接服务器之间建立一个长连接;以及
通讯模块,用于通过所述长连接与所述长连接服务器和各个应用服务器进行即时通讯,
其中,所述主页面与所述从属页面分别加载应用,所述应用均通过所述长连接与所述长连接服务器和各个应用服务器进行即时通讯。
10.根据权利要求9所述的浏览器端,其特征在于,所述通讯模块包括:
第一获取模块,用于获取用户通过所述浏览器端主页面触发的第一消息;以及
第一发送模块,用于由所述浏览器端主页面通过所述长连接将所述第一消息封装后发送给所述长连接服务器,由所述长连接服务器将所述封装的第一消息解封装后发送给所述各个应用服务器,以及由所述浏览器端主页面将所述第一消息发送给所述浏览器端从属页面;
或所述通讯模块包括:
第二获取模块,用于获取用户通过浏览器端从属页面触发的第二消息;和
第二发送模块,用于由所述浏览器端从属页面将所述第二消息发送给浏览器端主页面,并由所述浏览器端主页面通过所述长连接将所述第二消息封装后发送给所述长连接服务器,由所述长连接服务器将所述封装的第二消息解封装后发送给所述各个应用服务器,以及由所述浏览器端主页面将所述第二消息发送给其他浏览器端从属页面。
11.根据权利要求10所述的浏览器端,其特征在于,所述第一发送模块,用于判断所述浏览器端从属页面的应用类型是否与所述浏览器端主页面的应用类型相同,如果相同,则由所述浏览器端主页面将所述第一消息发送给与所述浏览器端主页面的应用类型相同的浏览器端从属页面;或
所述第二发送模块,用于判断所述浏览器端从属页面的应用类型是否与所述浏览器端主页面的应用类型相同,如果相同,则由所述浏览器端主页面将所述第二消息发送给与所述浏览器端主页面的应用类型相同的浏览器端从属页面。
12.根据权利要求9所述的浏览器端,其特征在于,所述通讯模块包括:
接收模块,用于利用所述浏览器端主页面接收所述各个应用服务器利用所述长连接服务器通过所述长连接发送的第三消息;以及
第三发送模块,用于由所述浏览器端主页面将所述第三消息发送给所述浏览器端从属页面。
13.根据权利要求12所述的浏览器端,其特征在于,所述第三发送模块,用于判断所述浏览器端从属页面的应用类型是否与所述浏览器端主页面的应用类型相同,如果相同,则由所述浏览器端主页面将所述第三消息发送给与所述浏览器端主页面的应用类型相同的浏览器端从属页面。
14.根据权利要求9至13任意一项所述的浏览器端,其特征在于,还包括:
重设模块,用于当所述浏览器端主页面消失时,随机使所述浏览器端从属页面成为浏览器端主页面或根据预设指定信息使确定的所述浏览器端从属页面成为浏览器端主页面;和/或
长连接断开模块,用于当所述浏览器端主页面和所述浏览器端从属页面消失时,断开所述长连接。
15.一种实现即时通讯的系统,其特征在于,包括:根据权利要求9至14任意一项所述的浏览器端、长连接服务器以及与所述长连接服务器通讯的各个应用服务器。
CN201210045473.4A 2012-02-24 2012-02-24 实现即时通讯的方法、浏览器端和系统 Active CN103297453B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201210045473.4A CN103297453B (zh) 2012-02-24 2012-02-24 实现即时通讯的方法、浏览器端和系统
HK13112138.3A HK1184930A1 (zh) 2012-02-24 2013-10-29 實現即時通訊的方法、瀏覽器端和系統

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210045473.4A CN103297453B (zh) 2012-02-24 2012-02-24 实现即时通讯的方法、浏览器端和系统

Publications (2)

Publication Number Publication Date
CN103297453A CN103297453A (zh) 2013-09-11
CN103297453B true CN103297453B (zh) 2016-05-11

Family

ID=49097770

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210045473.4A Active CN103297453B (zh) 2012-02-24 2012-02-24 实现即时通讯的方法、浏览器端和系统

Country Status (2)

Country Link
CN (1) CN103297453B (zh)
HK (1) HK1184930A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10402464B2 (en) 2013-11-21 2019-09-03 Beijing Qihoo Technology Company Limited Methods and apparatuses for opening a webpage, invoking a client, and creating a light application
CN103618777B (zh) * 2013-11-21 2016-07-13 北京奇虎科技有限公司 客户端调用的方法及设备
CN104734936A (zh) * 2013-12-19 2015-06-24 中兴通讯股份有限公司 即时消息处理方法、装置及系统
CN104834636B (zh) * 2014-02-08 2019-09-24 上海携程商务有限公司 网页的加载方法及装置
CN103905435A (zh) * 2014-03-14 2014-07-02 北京六间房科技有限公司 一种前端页面与后端服务器通信方法
CN104486327B (zh) * 2014-12-10 2019-02-05 北京奇虎科技有限公司 页面与长连接服务器间的通信方法及客户端
CN106341645A (zh) * 2016-09-14 2017-01-18 深圳市迈盛达信息技术有限公司 音视频通讯系统与方法
CN110300137B (zh) * 2018-03-22 2021-10-08 腾讯科技(深圳)有限公司 通信方法、装置、计算机设备和存储介质
CN108881395B (zh) * 2018-05-23 2021-11-23 北京五八信息技术有限公司 消息推送方法、设备、消息管理器及计算机可读存储介质
CN111240773A (zh) * 2018-11-28 2020-06-05 中国科学院沈阳自动化研究所 一种软件前端与后端连接方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101083534A (zh) * 2006-06-02 2007-12-05 阿里巴巴公司 一种通过浏览器实现即时通信的方法及系统
CN101179518A (zh) * 2006-12-19 2008-05-14 腾讯科技(深圳)有限公司 一种利用浏览器实现即时通信的方法及系统
CN101188577A (zh) * 2007-12-29 2008-05-28 腾讯科技(深圳)有限公司 多页面即时通讯方法和系统
CN101217554A (zh) * 2008-01-14 2008-07-09 张尧森 网页上实现的即时通讯的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101083534A (zh) * 2006-06-02 2007-12-05 阿里巴巴公司 一种通过浏览器实现即时通信的方法及系统
CN101179518A (zh) * 2006-12-19 2008-05-14 腾讯科技(深圳)有限公司 一种利用浏览器实现即时通信的方法及系统
CN101188577A (zh) * 2007-12-29 2008-05-28 腾讯科技(深圳)有限公司 多页面即时通讯方法和系统
CN101217554A (zh) * 2008-01-14 2008-07-09 张尧森 网页上实现的即时通讯的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于HAProxy的TCP长连接复用的研究与实现";周少涛;《中国优秀硕士学位论文全文数据库 信息科技辑》;20111215;正文第3章 *

Also Published As

Publication number Publication date
CN103297453A (zh) 2013-09-11
HK1184930A1 (zh) 2014-01-30

Similar Documents

Publication Publication Date Title
CN103297453B (zh) 实现即时通讯的方法、浏览器端和系统
CN108512748A (zh) 一种微服务网关的实现方法
KR20170093998A (ko) 디바이스 트리거링
CN104301443A (zh) 一种在web页面上调用端能力接口的方法和系统
CN104965690B (zh) 数据处理方法及装置
CN103067439B (zh) 负载均衡方法和系统
CN102404306B (zh) 一种配置协议的方法及装置
CN105991564A (zh) 报文处理方法及装置
CN104580302A (zh) 云服务管理系统及云联云管理系统
US10084660B2 (en) Method and system for collecting statistics on network communication data
CN105808763A (zh) 一种数据处理方法和装置
RU2011129701A (ru) Способ, сервер, клиент и система для мгновенного обмена сообщениями
CN109636460B (zh) 一种业务处理方法、装置、设备及存储介质
CN103699450A (zh) 一种Linux下的自适应组件间通信方法
CN106028311B (zh) 一种终端注册方法及装置
CN101605301B (zh) 一种进行多节点事务处理的集群系统及请求消息分发方法
CN104301352B (zh) 双卡终端的适配方法和装置
CN114765706A (zh) 用于从OLT触发vOMCI功能发送OMCI消息的方法和装置
CN109525550B (zh) 一种数据报文的处理方法、装置以及系统
CN105721398A (zh) 数据访问的方法及装置
US10171970B2 (en) Resource notification method and system, local CSE, remote CSE and storage medium
EP3038390B1 (en) Processing method and apparatus for signaling tracing
CN102761527B (zh) 集群中服务的访问方法及系统
CN107707492B (zh) 一种上报和下发报文的方法及装置
CN112835573A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1184930

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1184930

Country of ref document: HK