专利名称:一种即时通信的方法、装置及系统的利记博彩app
技术领域:
本发明涉及互联网技术领域,尤其涉及一种即时通信的方法、装置及系统。
背景技术:
随着互联网技术的不断发展,上网聊天成为人们沟通的重要方式之一。与之相适应的是,各种各样的即时通信工具也应用而生。尤其是为了打破局域网防火墙端口的限制, 互联网上又出现了网页版的即时通信工具。所述网页版的即时通信工具无需安装客户端, 即可通过HTTP(HyperText Transfer Protocol,超文本传输协议),穿过防火墙,在浏览器上直接实现上网聊天。目前,国内较常见的网页版的即时通信工具的核心系统通常是以 UDP(User Datagram Protocol,用户数据包协议)加线程池结构,使用了互联网先进的缓存技术。所述缓存用于各种数据的低成本存储,实现高速读写。所述网页版的即时通信客户端使用js (JavaScript,一种计算机脚本语言)设置定时器的方式来请求后台服务器进行数据交互。然而,在实现上述网页版的即时通信过程中,发明人发现现有技术中存在如下问题现有技术中,客户端使用js定时器方式来请求后台服务器进行数据交互,使得聊天过程的信息交互延时较大,反应迟钝,导致重复发送信息的情况增加,从而造成后台服务器资源的浪费,与此同时也会降低网页的加载速度,且对其他浏览器的兼容性较差,影响用户体验。
发明内容
本发明实施例提供一种即时通信的方法、装置及系统,为达到上述目的,本发明的实施例采用如下技术方案一种即时通信的方法,包括超文本传输协议服务器接收客户端发送的异步请求;根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息,并将所述响应消息转发给与其对应的客户端。一种服务器,包括接收单元,用于超文本传输协议服务器接收客户端发送的异步请求;以及当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息;连接单元,用于根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;
转发单元,用于所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;并将所述响应消息转发给与其对应的客户端。一种即时通信的系统,包括客户端和如上所述的服务器。本发明实施例提供的即时通信的方法、装置及系统,通过超文本传输协议服务器接收客户端发送的异步请求;根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息,并将所述响应消息转发给与其对应的客户端,使得本发明实施例提供的即时通信的方法、装置及系统不但够提高信息交互实时性,减少后台服务器资源浪费,加快网页加载速度,而且还可以提高与其他浏览器的兼容性以及用户体验。
图1为本发明实施例提供的一种即时通信的方法流程图;图2为本发明实施例提供的另一种即时通信的方法流程图;图3为本发明实施例提供的一种服务器结构示意图;图4为本发明实施例提供的一种即时通信的系统结构示意图。
具体实施例方式下面结合附图对本发明实施例提供的一种即时通信的方法、装置及系统进行详细描述。如图1所示,为本发明实施例提供的一种即时通信的方法;该方法包括101 超文本传输协议服务器接收客户端发送的异步请求;所述客户端发送异步请求采用AJAX(Asynchronous JavaScript and XML,创建交互式网页应用的网页开发技术);102 根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;所述超文本传输协议服务器与客户端建立的长连接由servlet容器来实现。103 所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;104:当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息,并将所述响应消息转发给与其对应的客户端。如图2所示,为本发明实施例提供的另一种即时通信的方法;该方法包括201 所述客户端判断其是否与套接字服务器建立连接;202 如果未建立连接,则通过超文本传输协议服务器接收客户端发送的异步请求;其中,所述异步请求有客户端采用AJAX的方式想所述超文本传输协议服务器发送。所述AJAX指一种创建交互式网页应用的网页开发技术。203 根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;所述超文本传输协议服务器与客户端建立的长连接由servlet容器来实现。
204 所述超文本传输协议服务器将所述异步请求转发给套接字服务器;所述超文本传输协议服务器通过LVS (Linux Virtual krver的,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进行分布式处理所述异步请求以及所述套接字服务器返回的响应消息。本发明实施例提供的即时通信的方法、装置及系统,通过超文本传输协议服务器接收客户端发送的异步请求;根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息,并将所述响应消息转发给与其对应的客户端,使得本发明实施例提供的即时通信的方法、装置及系统不但够提高信息交互实时性,减少后台服务器资源浪费,加快网页加载速度,而且还可以提高与其他浏览器的兼容性以及用户体验。通过以上的实施方式的描述,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如上述方法实施例的步骤,所述的存储介质,如R0M/RAM、磁碟、光盘等。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
权利要求
1.一种即时通信的方法,其特征在于,包括超文本传输协议服务器接收客户端发送的异步请求; 根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接; 所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息,并将所述响应消息转发给与其对应的客户端。
2.根据权利要求1所述的即时通信的方法,其特征在于,所述客户端发送异步请求采用创建交互式网页应用的网页开发技术;所述超文本传输协议服务器与客户端建立的长连接由servlet容器来实现。
3.根据权利要求2所述的即时通信的方法,其特征在于,该方法还包括 所述客户端判断其是否与套接字服务器建立连接;如果未建立连接,则所述超文本传输协议服务器通过Linux虚拟服务器进行分布式处理所述异步请求以及所述套接字服务器返回的响应消息。
4.根据权利要求3中所述的即时通信的方法,其特征在于,所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理的步骤,包括所述超文本传输协议服务器将所述异步请求转发给套接字服务器; 所述超文本传输协议服务器中的Java应用程序Servlet处理所述接收到的异步请求时,所述超文本传输协议服务器应用jetty中的类Continuation对象将所述长连接的相关信息进行封装;所述超文本传输协议服务器通过调用continuation的有效中断所述异步请求,并释放当前线程回到线程池,以便其他请求或者响应消息使用所述释放的线程。
5.根据权利要求4中所述的即时通信的方法,其特征在于,所述当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息,并将所述响应消息转发给与其对应的客户端的步骤,包括所述超文本传输协议服务器接收所述套接字服务器返回的响应消息; 根据所述响应消息,所述超文本传输协议服务器调用对应Continuation对象的 resume方法唤醒与所述响应消息对应的异步请求;将所述响应消息发送给与其对应的异步请求的servlet进行处理,并将处理后的响应消息发送给客户端。
6.一种服务器,其特征在于,包括接收单元,用于超文本传输协议服务器接收客户端发送的异步请求;以及当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息;连接单元,用于根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;转发单元,用于所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;并将所述响应消息转发给与其对应的客户端。
7.根据权利要求6所述的服务器,其特征在于,所述转发单元包括转发子单元,用于所述超文本传输协议服务器将所述异步请求转发给套接字服务器; 封装子单元,用于所述超文本传输协议服务器中的Java应用程序Servlet处理所述接收到的异步请求时,所述超文本传输协议服务器应用Continuation对象将所述长连接的相关信息进行封装;资源释放子单元,用于所述超文本传输协议服务器通过调用continuation的有效中断所述异步请求,并释放当前线程回到线程池,以便其他请求或者响应消息使用所述释放的线程。
8.根据权利要求7所述的服务器,其特征在于,所述接收单元包括接收子单元,用于所述超文本传输协议服务器接收所述套接字服务器返回的响应消息;调用子单元,用于根据所述响应消息,所述超文本传输协议服务器调用对应 Continuation对象的resume方法唤醒与所述响应消息对应的异步请求;数据处理子单元,用于将所述响应消息发送给与其对应的异步请求的servlet进行处理,并将处理后的响应消息发送给客户端。
9.一种即时通信的系统,其特征在于,包括客户端和如权利要求6至权利要求8中任意一项所述的服务器。
10.根据权利要求9所述的即时通信的系统,其特征在于,所述客户端包括判断单元; 所述服务器包括处理单元;所述判断单元,用于判断其是否与套接字服务器建立连接;所述处理单元,用于如果未建立连接,则所述超文本传输协议服务器通过Linux虚拟服务器进行分布式处理所述异步请求以及所述套接字服务器返回的响应消息。
全文摘要
本发明公开了一种即时通信的方法、装置及系统,涉及互联网技术领域。其中,本发明实施例提供的即时通信的方法,包括超文本传输协议服务器接收客户端发送的异步请求;根据所述异步请求,所述超文本传输协议服务器与客户端建立长连接;所述超文本传输协议服务器将所述异步请求转发给套接字服务器,由所述套接字服务器对所述异步请求进行数据处理;当所述套接字服务器完成数据处理后,所述超文本传输协议服务器接收所述套接字服务器返回的响应消息,并将所述响应消息转发给与其对应的客户端。采用本发明实施例能够提高信息交互实时性,减少后台服务器资源浪费,加快网页加载速度,提高与其他浏览器的兼容性以及用户体验。
文档编号H04L12/58GK102571868SQ201010617378
公开日2012年7月11日 申请日期2010年12月31日 优先权日2010年12月31日
发明者户起龙, 李天翼, 李攀, 蔡志国, 黄继德 申请人:北京新媒传信科技有限公司