CN102571868B - 一种即时通信的方法、装置及系统 - Google Patents
一种即时通信的方法、装置及系统 Download PDFInfo
- Publication number
- CN102571868B CN102571868B CN201010617378.8A CN201010617378A CN102571868B CN 102571868 B CN102571868 B CN 102571868B CN 201010617378 A CN201010617378 A CN 201010617378A CN 102571868 B CN102571868 B CN 102571868B
- Authority
- CN
- China
- Prior art keywords
- transfer protocol
- server
- hypertext transfer
- protocol server
- asynchronous request
- 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
Links
Abstract
本发明公开了一种即时通信的方法、装置及系统,涉及互联网技术领域。其中,本发明实施例提供的即时通信的方法,包括:超文本传输协议服务器接收客户端发送的异步请求;根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息,并将所述响应消息转发给与其对应的客户端。采用本发明实施例能够提高信息交互实时性,减少后台服务器资源浪费,加快网页加载速度,提高与其他浏览器的兼容性以及用户体验。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种即时通信的方法、装置及系统。
背景技术
随着互联网技术的不断发展,上网聊天成为人们沟通的重要方式之一。与之相适应的是,各种各样的即时通信工具也应用而生。尤其是为了打破局域网防火墙端口的限制,互联网上又出现了网页版的即时通信工具。所述网页版的即时通信工具无需安装客户端,即可通过HTTP(HyperText Transfer Protocol,超文本传输协议),穿过防火墙,在浏览器上直接实现上网聊天。目前,国内较常见的网页版的即时通信工具的核心系统通常是以UDP(User DatagramProtocol,用户数据包协议)加线程池结构,使用了互联网先进的缓存技术。所述缓存用于各种数据的低成本存储,实现高速读写。所述网页版的即时通信客户端使用js(JavaScript,一种计算机脚本语言)设置定时器的方式来请求后台服务器进行数据交互。
然而,在实现上述网页版的即时通信过程中,发明人发现现有技术中存在如下问题:
现有技术中,客户端使用js定时器方式来请求后台服务器进行数据交互,使得聊天过程的信息交互延时较大,反应迟钝,导致重复发送信息的情况增加,从而造成后台服务器资源的浪费,与此同时也会降低网页的加载速度,且对其他浏览器的兼容性较差,影响用户体验。
发明内容
本发明实施例提供一种即时通信的方法、装置及系统,为达到上述目的,本发明的实施例采用如下技术方案:
一种即时通信的方法,包括:
超文本传输协议服务器接收客户端发送的异步请求;
根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;
所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;
当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息,并将所述响应消息转发给与其对应的客户端。
一种服务器,包括:
接收单元,用于超文本传输协议服务器接收客户端发送的异步请求;以及当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息;
连接单元,用于根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;
转发单元,用于所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;并将所述响应消息转发给与其对应的客户端。
一种即时通信的系统,包括:客户端和如上所述的服务器。
本发明实施例提供的即时通信的方法、装置及系统,通过超文本传输协议服务器接收客户端发送的异步请求;根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息,并将所述响应消息转发给与其对应的客户端,使得本发明实施例提供的即时通信的方法、装置及系统不但够提高信息交互实时性,减少后台服务器资源浪费,加快网页加载速度,而且还可以提高与其他浏览器的兼容性以及用户体验。
附图说明
图1为本发明实施例提供的一种即时通信的方法流程图;
图2为本发明实施例提供的另一种即时通信的方法流程图;
图3为本发明实施例提供的一种服务器结构示意图;
图4为本发明实施例提供的一种即时通信的系统结构示意图。
具体实施方式
下面结合附图对本发明实施例提供的一种即时通信的方法、装置及系统进行详细描述。
如图1所示,为本发明实施例提供的一种即时通信的方法;该方法包括:
101:超文本传输协议服务器接收客户端发送的异步请求;所述客户端发送异步请求采用AJAX(Asynchronous JavaScript andXML,创建交互式网页应用的网页开发技术);
102:根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;所述超文本传输协议服务器与客户端建立的长连接由servlet容器来实现。
103:所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;
104:当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息,并将所述响应消息转发给与其对应的客户端。
如图2所示,为本发明实施例提供的另一种即时通信的方法;该方法包括:
201:所述客户端判断其是否与套接字服务器建立连接;
202:如果未建立连接,则通过超文本传输协议服务器接收客户端发送的异步请求;其中,所述异步请求有客户端采用AJAX的方式想所述超文本传输协议服务器发送。所述AJAX指一种创建交互式网页应用的网页开发技术。
203:根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;所述超文本传输协议服务器与客户端建立的长连接由servlet容器来实现。
204:所述超文本传输协议服务器将所述异步请求转发给套接字服务器;所述超文本传输协议服务器通过LVS(Linux VirtualServer的,Linux虚拟服务器)进行分布式处理所述异步请求;
205:所述超文本传输协议服务器中的Java应用程序Servlet处理所述接收到的异步请求时,所述超文本传输协议服务器应用jetty中的类Continuation对象将所述长连接的相关信息进行封装。
206:所述超文本传输协议服务器通过调用continuation的有效中断所述异步请求,并释放当前线程回到线程池,以便其他请求或者响应消息使用所述释放的线程。
207:当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息;
208:根据所述响应消息,所述超文本传输协议服务器调用对应Continuation对象的resume方法唤醒与所述响应消息对应的异步请求;
209:将所述响应消息发送给与其对应的异步请求的servlet进行处理,并将处理后的响应消息发送给客户端。所述超文本传输协议服务器通过LVS进行分布式处理所述响应消息。
需要说明的是,在防火墙没有限制的情况下,前端客户端则可以采用aflax(AJAX-Javascript+Flash,基于AJAX的“派生/合成”式技术)的结构,aflax可以分为两部分,第一部分是js和flash,其中,Flash是一种交互式矢量图和Web动画的标准。通过网页内嵌flash与js之间通过回调的方法来互相传递消息,flash作为一种js与服务器的中间媒介,第二部分是flash和socket(套接字)服务器通信,通过flash的xmlsocket(flash中的类)向后台socket服务器直接发送消息,与socket服务器保持长连接,这与普通的socket通信原理类似,此处不再赘述。所述flash主要做接收和发送消息的载体,flash的xmlsocket直接请求socket服务器,跨过HTTP服务器,有效的提高了消息的传输速度,即时性要比http的略好,如果防火墙有限制,则客户端会判断是否与socket服务器建立连接,若未建立连接,则通过http服务器的通讯方式,进行数据交互即如上所述的步骤202至步骤209的实现过程。
如图3所示,为本发明实施例提供的一种服务器,该服务器包括:
接收单元301,用于超文本传输协议服务器接收客户端发送的异步请求;以及当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息;
连接单元302,用于根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;
转发单元303,用于所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;并将所述响应消息转发给与其对应的客户端。
其中,所述转发单元303包括:
转发子单元,用于所述超文本传输协议服务器将所述异步请求转发给套接字服务器;
封装子单元,用于所述超文本传输协议服务器中的Servlet处理所述接收到的异步请求时,所述超文本传输协议服务器应用Continuation对象将所述长连接的相关信息进行封装;
资源释放子单元,用于所述超文本传输协议服务器通过调用continuation的有效中断所述异步请求,并释放当前线程回到线程池,以便其他请求或者响应消息使用所述释放的线程。
所述接收单元301包括:
接收子单元,用于所述超文本传输协议服务器接收所述套接字服务器返回的响应消息;
调用子单元,用于根据所述响应消息,所述超文本传输协议服务器调用对应Continuation对象的resume方法唤醒与所述响应消息对应的异步请求;
数据处理子单元,用于将所述响应消息发送给与其对应的异步请求的servlet进行处理,并将处理后的响应消息发送给客户端。
如图4所示,为本发明实施例提供的一种即时通信的系统,该系统包括:客户端401和如上所述的服务器402;
需要注意的是,所述客户端401可以包括:判断单元;所述服务器402还可以包括:处理单元;
所述判断单元,用于判断其是否与套接字服务器建立连接;
所述处理单元,用于如果未建立连接,则所述超文本传输协议服务器通过LVS进行分布式处理所述异步请求以及所述套接字服务器返回的响应消息。
本发明实施例提供的即时通信的方法、装置及系统,通过超文本传输协议服务器接收客户端发送的异步请求;根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息,并将所述响应消息转发给与其对应的客户端,使得本发明实施例提供的即时通信的方法、装置及系统不但够提高信息交互实时性,减少后台服务器资源浪费,加快网页加载速度,而且还可以提高与其他浏览器的兼容性以及用户体验。
通过以上的实施方式的描述,本领域普通技术人员可以理解:实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如上述方法实施例的步骤,所述的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种即时通信的方法,其特征在于,包括:
超文本传输协议服务器接收客户端发送的异步请求;
根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;
所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;
当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息,并将所述响应消息转发给与其对应的客户端;
其中,该方法还包括:
所述客户端判断其是否与套接字服务器建立连接;
如果未建立连接,则所述超文本传输协议服务器通过Linux虚拟服务器进行分布式处理所述异步请求以及所述套接字服务器返回的响应消息。
2.根据权利要求1所述的即时通信的方法,其特征在于,所述客户端发送异步请求采用创建交互式网页应用的网页开发技术;所述超文本传输协议服务器与客户端建立的长连接由servlet容器来实现。
3.根据权利要求2中所述的即时通信的方法,其特征在于,所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理的步骤,包括:
所述超文本传输协议服务器将所述异步请求转发给套接字服务器;
所述超文本传输协议服务器中的Java应用程序Servlet处理所述接收到的异步请求时,所述超文本传输协议服务器应用jetty中的类Continuation对象将所述长连接的相关信息进行封装;
所述超文本传输协议服务器通过调用continuation的有效中断所述异步请求,并释放当前线程回到线程池,以便其他请求或者响应消息使用所述释放的线程。
4.根据权利要求3中所述的即时通信的方法,其特征在于,所述当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息,并将所述响应消息转发给与其对应的客户端的步骤,包括:
所述超文本传输协议服务器接收所述套接字服务器返回的响应消息;
根据所述响应消息,所述超文本传输协议服务器调用对应Continuation对象的resume方法唤醒与所述响应消息对应的异步请求;
将所述响应消息发送给与其对应的异步请求的servlet进行处理,并将处理后的响应消息发送给客户端。
5.一种超文本传输协议服务器,其特征在于,包括:
接收单元,用于超文本传输协议服务器接收客户端发送的异步请求;以及当套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息;
连接单元,用于根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;
转发单元,用于所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;并将所述响应消息转发给与其对应的客户端;
所述超文本传输协议服务器还包括处理单元,用于在客户端判断未与套接字服务器建立连接时,则所述超文本传输协议服务器通过Linux虚拟服务器进行分布式处理所述异步请求以及所述套接字服务器返回的响应消息。
6.根据权利要求5所述的超文本传输协议服务器,其特征在于,所述转发单元包括:
转发子单元,用于所述超文本传输协议服务器将所述异步请求转发给套接字服务器;
封装子单元,用于所述超文本传输协议服务器中的Java应用程序Servlet处理所述接收到的异步请求时,所述超文本传输协议服务器应用Continuation对象将所述长连接的相关信息进行封装;
资源释放子单元,用于所述超文本传输协议服务器通过调用continuation的有效中断所述异步请求,并释放当前线程回到线程池,以便其他请求或者响应消息使用所述释放的线程。
7.根据权利要求6所述的超文本传输协议服务器,其特征在于,所述接收单元包括:
接收子单元,用于所述超文本传输协议服务器接收所述套接字服务器返回的响应消息;
调用子单元,用于根据所述响应消息,所述超文本传输协议服务器调用对应Continuation对象的resume方法唤醒与所述响应消息对应的异步请求;
数据处理子单元,用于将所述响应消息发送给与其对应的异步请求的servlet进行处理,并将处理后的响应消息发送给客户端。
8.一种即时通信的系统,其特征在于,包括:客户端和如权利要求5至权利要求7中任意一项所述的超文本传输协议服务器。
9.根据权利要求8所述的即时通信的系统,其特征在于,所述客户端包括:判断单元;
所述判断单元,用于判断其是否与套接字服务器建立连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010617378.8A CN102571868B (zh) | 2010-12-31 | 2010-12-31 | 一种即时通信的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010617378.8A CN102571868B (zh) | 2010-12-31 | 2010-12-31 | 一种即时通信的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102571868A CN102571868A (zh) | 2012-07-11 |
CN102571868B true CN102571868B (zh) | 2015-01-14 |
Family
ID=46416339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010617378.8A Active CN102571868B (zh) | 2010-12-31 | 2010-12-31 | 一种即时通信的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102571868B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678009B (zh) * | 2013-12-05 | 2017-06-16 | 新浪网技术(中国)有限公司 | 网页页面的订阅者接收网络数据的方法和装置 |
CN103634323B (zh) * | 2013-12-06 | 2019-02-22 | 北京奇虎科技有限公司 | 基于长连接的数据处理实现方法、系统及装置 |
CN105099989B (zh) * | 2014-04-24 | 2019-11-22 | 阿里巴巴集团控股有限公司 | 用于处理业务请求及获取业务处理结果的方法、装置和系统 |
CN107807934B (zh) * | 2016-09-09 | 2022-02-11 | 阿里巴巴(中国)有限公司 | 页面显示方法和装置以及计算设备 |
CN106878460B (zh) * | 2017-03-24 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 通信处理方法及装置 |
CN110049280B (zh) * | 2019-03-14 | 2022-01-11 | 视联动力信息技术股份有限公司 | 监控数据的处理方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119327A (zh) * | 2006-08-04 | 2008-02-06 | 陆悦 | 一种即时聊天实现系统和方法 |
CN101707600A (zh) * | 2009-11-13 | 2010-05-12 | 东南大学 | 基于web2.0实现多协议即时通信的系统及方法 |
CN101707628A (zh) * | 2009-11-13 | 2010-05-12 | 东南大学 | 基于Ajax和J2EE的融合通信系统及其数据传输方法 |
-
2010
- 2010-12-31 CN CN201010617378.8A patent/CN102571868B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119327A (zh) * | 2006-08-04 | 2008-02-06 | 陆悦 | 一种即时聊天实现系统和方法 |
CN101707600A (zh) * | 2009-11-13 | 2010-05-12 | 东南大学 | 基于web2.0实现多协议即时通信的系统及方法 |
CN101707628A (zh) * | 2009-11-13 | 2010-05-12 | 东南大学 | 基于Ajax和J2EE的融合通信系统及其数据传输方法 |
Non-Patent Citations (1)
Title |
---|
基于B/和C/的即时通信系统;陈立浩;《计算机工程》;20090831;第35卷(第15期);正文第2-3章 * |
Also Published As
Publication number | Publication date |
---|---|
CN102571868A (zh) | 2012-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102571868B (zh) | 一种即时通信的方法、装置及系统 | |
CN102655481B (zh) | 一种基于网页的即时通信聊天内容查看方法及系统 | |
CN101902485B (zh) | 一种反向Web代理的链接改写方法 | |
US20120259987A1 (en) | Detecting an inactive client during a communication session | |
CN104243267B (zh) | 数据传输方法及装置 | |
CN107483609B (zh) | 一种网络访问方法、相关设备和系统 | |
WO2013097066A1 (zh) | 一种实现远程桌面环境下网页浏览的方法、装置和系统 | |
CN106534243A (zh) | 基于http协议的缓存、请求、响应方法及相应装置 | |
US9143378B2 (en) | Rendering components within different browser environments | |
CN103516785A (zh) | 网页代理系统及其通信方法 | |
CN103001860A (zh) | 一种融合通信Web即时消息实现系统 | |
EP3054650A1 (en) | Method, device and system for redirecting data service proxy | |
CN103618799B (zh) | 浏览器缓存处理方法、系统及代理服务器 | |
CN104378436A (zh) | 一种基于服务器推送的信息推送系统及推送方法 | |
CN106878408A (zh) | 跨域请求数据的方法及系统 | |
CN104040995B (zh) | 多媒体重定向方法以及多媒体服务器以及计算机系统 | |
US20120117270A1 (en) | Methods for reducing latency in network connections using automatic redirects and systems thereof | |
CN101741866B (zh) | 一种在线存储系统及方法 | |
CN102394880A (zh) | 内容分发网络中的跳转响应处理方法和设备 | |
CN102130844A (zh) | 获取Web聊天记录的方法及系统 | |
CN106034141B (zh) | 消息处理方法、资源获取方法、服务器及终端设备 | |
CN111242776A (zh) | 基于区块链的记账方法、装置、存储介质及电子设备 | |
CN102999503A (zh) | 一种转发到微博的实现方法及系统 | |
JP2022546108A (ja) | 情報処理方法、装置、設備及びコンピュータ読み取り可能な記憶媒体 | |
EP1641217B1 (en) | Method, apparatus and system for passing messages to a web browser |
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 | ||
CP02 | Change in the address of a patent holder |
Address after: Room 810, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080 Patentee after: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd. Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building A block 5 layer Patentee before: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |