本发明涉及即时通讯技术领域,特别是涉及一种即时通讯中数据的获取方法、装置、服务器及系统。
背景技术:
为了提高用户体验,除了提供在线聊天的服务,即时通讯系统还可以利用http(超文本传输协议)访问应用以获取该应用的数据,从而提供关于所获取的数据的服务。举例而言,某一即时通讯系统可以利用超文本传输协议访问新闻平台,获取新闻数据,为用户提供新闻展示的服务;访问用户的邮箱,获取用户的邮箱数据,为用户提供邮件管理的服务;访问视频平台,获取视频数据,为用户提供视频播放的服务等等。
相关技术中,即时通讯系统利用超文本传输协议访问应用获取该应用的数据时,即时通讯系统的客户端与网关服务器之间建立短连接,进而通过网关服务器访问应用。其中,短连接具有一次任务结束即中断连接的特点,并且每一次利用超文本传输协议获取数据可以看作一次任务。因此,客户端每进行一次数据获取,需要建立一次与网关服务器之间的连接。
但是,用户很可能在短时间内使用多种服务,使得客户端在短时间内多次利用超文本传输协议获取数据,相应的,需要多次建立客户端与网关服务器之间的连接。并且,每次建立连接均需要经过三次握手,导致数据获取的时间成本上升,数据获取效率下降。
技术实现要素:
本发明实施例的目的在于提供一种即时通讯中数据的获取方法、装置、服务器及系统,以实现提高即时通讯中数据的获取效率的效果。具体技术方案如下:
第一方面,本发明实施例提供了一种即时通讯中数据的获取方法,应用于即时通讯系统的管理服务器,所述即时通讯系统还包括客户端以及网关服务器;所述管理服务器与所述客户端之间建立有长连接;所述管理服务器与所述网关服务器属于相同的局域网;该方法包括:
在接收到所述客户端发送的数据获取请求时,基于所述数据获取请求,利用所述局域网向所述网关服务器请求待获取数据,以使得所述网关服务器利用所述局域网将所述待获取数据返回给所述管理服务器;
在接收到所述待获取数据时,将所述待获取数据发送给所述客户端。
可选的,所述基于所述数据获取请求,利用所述局域网向所述网关服务器请求待获取数据,包括:
获取所述数据获取请求对应的用户信息和待获取数据的数据标识;
将所述用户信息和所述数据标识封装为二进制格式的数据获取请求;
利用所述局域网将所述二进制格式的数据获取请求发送给所述网关服务器。
可选的,所述方法还包括:
检测所述长连接、以及所述局域网中的任一个是否异常;
如果异常,指示所述客户端建立与所述网关服务器之间的短连接,并指示所述客户端利用超文本传输协议向所述网关服务器请求所述待获取数据。
可选的,所述在接收到所述待获取数据时,将所述待获取数据发送给所述客户端,包括:
在接收到所述待获取数据时,对所述待获取数据进行序列化处理,得到序列化后的数据;
将所述序列化后的数据封装为二进制格式的数据发送给所述客户端。
可选的,所述管理服务器与所述客户端之间的长连接,采用如下步骤建立:
管理服务器在接收到所述客户端发送的长连接建立请求时,获取所述客户端的位置信息;
按照所述位置信息,将与所述客户端位置最近的接入服务器分配给所述客户端,以使得所述客户端通过所分配的接入服务器建立与所述管理服务器之间的长连接。
第二方面,本发明实施例提供了一种即时通讯中数据的获取装置,应用于即时通讯系统的管理服务器;所述即时通讯系统还包括客户端以及网关服务器;所述管理服务器与所述客户端之间建立有长连接;所述管理服务器与所述网关服务器属于相同的局域网;该装置包括:
数据请求模块,用于在接收到所述客户端发送的数据获取请求时,基于所述数据获取请求,利用所述局域网向所述网关服务器请求待获取数据,以使得所述网关服务器利用所述局域网将所述待获取数据返回给所述管理服务器;
数据发送模块,用于在接收到所述待获取数据时,将所述待获取数据发送给所述客户端。
可选的,所述数据请求模块,具体用于:
获取所述数据获取请求对应的用户信息和待获取数据的数据标识;
将所述用户信息和所述数据标识封装为二进制格式的数据获取请求;
利用所述局域网将所述二进制格式的数据获取请求发送给所述网关服务器。
可选的,所述装置还包括:切换模块,用于:
检测所述长连接、以及所述局域网中的任一个是否异常;
如果异常,指示所述客户端建立与所述网关服务器之间的短连接,并指示所述客户端利用超文本传输协议向所述网关服务器请求所述待获取数据。
可选的,所述数据发送模块,具体用于:
在接收到所述待获取数据时,对所述待获取数据进行序列化处理,得到序列化后的数据;
将所述序列化后的数据封装为二进制格式的数据发送给所述客户端。
可选的,所述管理服务器与所述客户端之间的长连接,采用如下步骤建立:
管理服务器在接收到所述客户端发送的长连接建立请求时,获取所述客户端的位置信息;
按照所述位置信息,将与所述客户端位置最近的接入服务器分配给所述客户端,以使得所述客户端通过所分配的接入服务器建立与所述管理服务器之间的长连接。
第三方面,本发明实施例提供了一种即时通讯系统,该系统包括:
管理服务器、客户端以及网关服务器;所述管理服务器与所述客户端之间建立有长连接;所述管理服务器与所述网关服务器属于相同的局域网;
所述客户端,用于向所述管理服务器发送数据获取请求;接收所述管理服务器发送的待获取数据;
所述管理服务器,用于在接收到所述客户端发送的数据获取请求时,基于所述数据获取请求,利用所述局域网向所述网关服务器请求待获取数据;在接收到所述待获取数据时,将所述待获取数据发送给所述客户端;
所述网关服务器,用于利用所述局域网将所述待获取数据返回给所述管理服务器。
第四方面,本发明实施例提供了一种服务器,该服务器包括:
处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现上述第一方面提供的即时通讯中数据的获取方法的步骤。
第五方面,本发明实施例提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面提供的即时通讯中数据的获取方法的步骤。
本发明实施例提供的方案中,管理服务器在接收到客户端发送的数据获取请求时,基于数据获取请求,利用局域网向网关服务器请求待获取数据,使得网关服务器将待获取数据返回给管理服务器;进而管理服务器可以在接收到所述待获取数据时,将所接收的待获取数据发送给客户端。其中,管理服务器与客户端之间建立有长连接,与多次建立短连接相比,可以减少建立连接所进行的三次握手的过程;并且,管理服务器与网关服务器属于相同的局域网,数据获取效率相对而言较高。因此,与客户端以短连接形式直接访问网关服务器获取待获取数据相比,可以减少三次握手造成的时延和客户端访问另一区域的网关服务器造成的时延,减少数据获取的时间成本,从而提高即时通讯中数据的获取效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明一实施例提供的即时通讯中数据的获取方法的流程示意图;
图2为本发明另一实施例提供的即时通讯中数据的获取方法的流程示意图;
图3为本发明一实施例提供的即时通讯中数据的获取装置的结构示意图;
图4为本发明一实施例提供的即时通讯系统的结构示意图;
图5为本发明一实施例提供的服务器的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面首先对本发明一实施例的即时通讯中数据的获取方法进行介绍。
本发明实施例提供的即时通讯中数据的获取方法,可以应用于即时通讯系统中管理服务器,在具体应用中,管理服务器可以包括台式计算机、便携式计算机、互联网电视、智能移动终端、服务器以及可穿戴式智能终端等等,在此不作限定,任何可以实现本发明实施例的管理服务器,均属于本发明实施例的保护范围。并且,上述即使通讯系统还可以包括客户端以及网关服务器。管理服务器与客户端之间建立有长连接;管理服务器与网关服务器属于相同的局域网。
如图1所示,本发明一实施例的即时通讯中数据的获取方法的流程,该方法可以包括:
s101,客户端发送数据获取请求给管理服务器。
在具体应用中,数据获取请求的发送时机具体可以为客户端请求使用数据获取请求所获取的数据对应的服务时。举例而言,即时通讯系统的客户端请求关于视频播放的服务时,客户端可以发送关于视频数据的数据获取请求给管理服务器。其中,数据获取请求用于请求待获取数据。待获取数据用于实现关于所获取的数据的服务。示例性的,待获取数据具体可以为视频数据、视频应用的接口、邮箱平台的接口以及新闻数据等等数据。
s102,管理服务器在接收到客户端发送的数据获取请求时,基于数据获取请求,利用局域网向网关服务器请求待获取数据。
其中,管理服务器基于数据获取请求,利用局域网向网关服务器请求待获取数据的方式具体可以是多种的。示例性的,管理服务器可以利用局域网直接将数据获取请求发送给网关服务器,以请求待获取数据。或者,示例性的,管理服务器可以获取数据获取请求对应的用户信息和待获取数据的数据标识,并将用户信息和待获取数据的数据标识处理为便于传输的格式的数据获取请求,进而利用局域网将处理后得到的数据获取请求发送给网关服务器以请求带待获取数据。为了便于理解和合理布局,对于第二种示例性描述,在后续本发明图2实施例中进行具体说明。
任何管理服务器基于数据获取请求,利用局域网向网关服务器请求待获取数据的方式均可用于本发明,本实施例对此不作限制。另外,为了减轻管理服务器的压力,提高管理服务器的性能,管理服务器可以基于数据获取请求,利用远程过程调用,指示作为数据获取服务器利用局域网向网关服务器请求待获取数据。其中,数据获取服务器相当于管理服务器和网关服务器之间的中转站,用于分担管理服务器的压力。
s103,网关服务器利用局域网将待获取数据返回给管理服务器。
为了减少数据传输时延造成的数据获取效率的降低,网关服务器和管理服务器处于同一个局域网中。此时,管理服务器利用局域网向网关服务器请求待获取数据,以及网关服务器利用局域网将待获取数据返回给管理服务器时,数据的传输速度,与客户端直接和处于与客户端不同区域的网络中的网关服务器交互相比,相对而言更高。因此,可以提高待获取数据的获取效率。
s104,管理服务器在接收到待获取数据时,将待获取数据发送给客户端。
由于管理服务器与客户端之间建立有长连接,因此,客户端向管理服务器发送数据获取请求,以及管理服务器将接收到的待获取数据发送给客户端时,即使多次请求和多次获取,仍然可以使用已建立的长连接。与客户端直接与网关服务器交互时使用的短连接相比,无需每次都经过三次握手的过程,可以大大减少三次握手过程造成的数据获取延迟。并且,由于长连接建立在管理服务器与客户端之间,与直接建立客户端与网关服务器之间的长连接相比,相对而言可以提高客户端以及长连接通信中的安全性。
示例性的,在某一即时通讯系统中,可以提供关于1300余个接口的多样化服务。如果利用http的短连接获取这些接口,会导致接口获取过慢,进入接口对应的页面时加载时间过长等等效率低下的问题。而通过本发明的长连接机制,可以将接口的获取速度和页面加载效率提升2/3左右,较优地提升接口的获取速度,减少用户等待时间,极大地提升用户体验。
本发明实施例提供的方案中,管理服务器在接收到客户端发送的数据获取请求时,基于数据获取请求,利用局域网向网关服务器请求待获取数据,使得网关服务器将待获取数据返回给管理服务器;进而管理服务器可以在接收到所述待获取数据时,将所接收的待获取数据发送给客户端。其中,管理服务器与客户端之间建立有长连接,与多次建立短连接相比,可以减少建立连接所进行的三次握手的过程;并且,管理服务器与网关服务器属于相同的局域网,数据获取效率相对而言较高。因此,与客户端以短连接形式直接访问网关服务器获取待获取数据相比,可以减少三次握手造成的时延和客户端访问另一区域的网关服务器造成的时延,减少数据获取的时间成本,从而提高即时通讯中数据的获取效率。
如图2所示,本发明另一实施例的即时通讯中数据的获取方法的流程,该方法可以包括:
s201,客户端发送数据获取请求给管理服务器。
上述s201为与本发明图1实施例的s101相同的步骤,在此不再赘述,详见上述本发明图1实施例的描述。
s202,管理服务器在接收到客户端发送的数据获取请求时,获取数据获取请求对应的用户信息和待获取数据的数据标识,并将用户信息和数据标识封装为二进制格式的数据获取请求。
其中,管理服务器获取数据获取请求对应的用户信息和待获取数据的数据标识的方式具体可以是多种的。示例性的,当数据获取请求中携带有用户信息和待获取数据的数据标识时,管理服务器可以直接从数据获取请求中提取用户信息和待获取数据的数据标识。或者,示例性的,当用户信息和待获取数据的数据标识独立于数据获取请求发送时,管理服务器可以接收于数据获取请求同步发送的用户信息和待获取数据的数据标识。
管理服务器将用户信息和数据标识封装为二进制格式的数据获取请求,具体可以包括:管理服务器分别对用户信息和数据标识进行序列化处理,得到二进制格式的用户信息和二进制格式的数据标识,将二进制格式的用户信息和二进制格式的数据标识封装为符合tcp(transmissioncontrolprotocol,传输控制协议)协议的请求,得到二进制格式的数据获取请求。
s203,利用局域网将二进制格式的数据获取请求发送给网关服务器。
上述s203与本发明图1实施例的s202中发送数据获取请求给网关服务器的步骤相似,区别在于s203中数据获取请求的格式为二进制的,相对而言可以减少对带宽的占用,提高传输效率。
s204,网关服务器利用局域网将待获取数据返回给管理服务器。
s205,管理服务器在接收到待获取数据时,将待获取数据发送给客户端。
上述s204至s205为与本发明图1实施例的s103至s104相同的步骤,在此不再赘述,详见上述本发明图1实施例的描述。
在上述图2实施例中,管理服务器将用户信息和数据标识封装为二进制格式的数据获取请求,二进制格式的数据获取请求相同而言体量较少,可以减少对带宽的占用和传输效率。并且,该数据获取请求中包含用户信息,相当于模拟用户的账号访问网关服务器,对于需要验证用户身份的情况,可以提高访问成功率。
在一种可选的实施方式中,本发明实施例提供的即时通讯系统中数据的获取方法,还可以包括如下步骤:
检测长连接、以及局域网中的任一个是否异常;
如果异常,指示客户端建立与网关服务器之间的短连接,并指示客户端利用超文本传输协议向网关服务器请求待获取数据。
为了在管理服务器和客户端之间的长连接,以及管理服务器和网关服务器所在的同一局域网故障时,减少等待故障修复造成的数据获取时延,提高数据获取效率以及即时通讯系统的可用性,可以在检测到长连接、以及局域网中的任一个异常时,切换为客户端与网关服务器之间短连接交互。具体的,当长连接、以及局域网中的任一个异常时,无法通过长连接机制进行数据获取,因此,管理服务器可以指示客户端建立与网关服务器之间的短连接,并指示客户端利用超文本传输协议向网关服务器请求待获取数据。
其中,管理服务器检测长连接、以及局域网中的任一个是否异常的方式具体可以是多种的。示例性的,管理服务器可以在接收到客户端发送的关于长连接异常的通知时,确定检测到长连接异常。或者,示例性的,管理服务器可以以心跳机制监测与客户端之间的长连接是否异常。其中,心跳机制为定时发送一个自定义的结构体:心跳包给对方,让对方知道自己还活着,以确保连接的有效性的机制。或者,示例性的,管理服务器可以在接收到关于局域网异常的通知时,确定检测到局域网异常。或者,管理服务器可以以心跳机制监测与网关服务器之间通过局域网建立连接是否异常;如果异常,可以确定检测到局域网异常。任何管理服务器检测长连接、以及局域网中的任一个是否异常的方式均可以用于本发明,本实施例对此不作限制。
可选的,上述在接收到待获取数据时,将待获取数据发送给客户端,具体可以包括如下步骤:
在接收到待获取数据时,对待获取数据进行序列化处理,得到序列化后的数据;
将序列化后的数据封装为二进制格式的数据发送给客户端。
与管理服务器获得二进制格式的数据获取请求类似的,管理服务器可以在接收到待获取数据时,对待获取数据进行序列化处理,得到序列化后的数据;进而将序列化后的数据封装为二进制格式的数据发送给客户端。由此,可以通过序列化后二进制格式的数据,减少所获取的数据的体量,并以序列化实现数据的加密,提高数据安全性。
可选的,上述管理服务器与客户端之间的长连接,采用如下步骤建立:
管理服务器在接收到客户端发送的长连接建立请求时,获取客户端的位置信息;
按照位置信息,将与客户端位置最近的接入服务器分配给客户端,以使得客户端通过所分配的接入服务器建立与管理服务器之间的长连接。
在具体应用中,即时通讯系统的客户端很可能处于距离管理服务器较远的区域。例如,管理服务器在北京,客户端很可能在纽约。对此,为了使客户端以相对而言最短的通讯距离建立与管理服务器之间的长连接,以提高通讯速度,进而提高数据获取效率。管理服务器可以在接收到客户端发送的长连接建立请求时,获取客户端的位置信息。以此为基础,管理服务器可以按照位置信息,将与客户端位置最近的接入服务器分配给客户端,由此,客户端通过所分配的接入服务器建立与管理服务器之间的长连接,为通讯距离相对而言最短的长连接,数据传输速度相对而言较高。
其中,客户端的位置信息具体可以包括客户端标识中表明客户端所在国家的国家码,或者,客户端的ip地址。并且,管理服务器获取客户端的位置信息的方式可以是多种的。示例性的,管理服务器可以从客户端发送的长连接建立请求中提取客户端的位置信息。或者,示例性的,管理服务器可以从客户端发送的长连接建立请求中读取客户端的标识,从预存的客户端的标识与位置信息的对应关系中,查找所读取的客户端的标识对应的位置信息。另外,接入服务器具体为用于建立客户端与管理服务器之间连接的代理服务器。客户端的长连接建立请求可以由通信网络中已部署的导航服务器传输至管理服务器。
相应于上述方法实施例,本发明一实施例还提供了即时通讯中数据的获取装置。
如图3所示,本发明一实施例的即时通讯中数据的获取装置,应用于即时通讯系统的管理服务器;所述即时通讯系统还包括客户端以及网关服务器;所述管理服务器与所述客户端之间建立有长连接;所述管理服务器与所述网关服务器属于相同的局域网;该装置可以包括:
数据请求模块301,用于在接收到所述客户端发送的数据获取请求时,基于所述数据获取请求,利用所述局域网向所述网关服务器请求待获取数据,以使得所述网关服务器利用所述局域网将所述待获取数据返回给所述管理服务器;
数据发送模块302,用于在接收到所述待获取数据时,将所述待获取数据发送给所述客户端。
本发明实施例提供的方案中,管理服务器在接收到客户端发送的数据获取请求时,基于数据获取请求,利用局域网向网关服务器请求待获取数据,使得网关服务器将待获取数据返回给管理服务器;进而管理服务器可以在接收到所述待获取数据时,将所接收的待获取数据发送给客户端。其中,管理服务器与客户端之间建立有长连接,与多次建立短连接相比,可以减少建立连接所进行的三次握手的过程;并且,管理服务器与网关服务器属于相同的局域网,数据获取效率相对而言较高。因此,与客户端以短连接形式直接访问网关服务器获取待获取数据相比,可以减少三次握手造成的时延和客户端访问另一区域的网关服务器造成的时延,减少数据获取的时间成本,从而提高即时通讯中数据的获取效率。
可选的,所述数据请求模块301,具体用于:
获取所述数据获取请求对应的用户信息和待获取数据的数据标识;
将所述用户信息和所述数据标识封装为二进制格式的数据获取请求;
利用所述局域网将所述二进制格式的数据获取请求发送给所述网关服务器。
可选的,所述装置还包括:切换模块,用于:
检测所述长连接、以及所述局域网中的任一个是否异常;
如果异常,指示所述客户端建立与所述网关服务器之间的短连接,并指示所述客户端利用超文本传输协议向所述网关服务器请求所述待获取数据。
可选的,所述数据发送模块302,具体用于:
在接收到所述待获取数据时,对所述待获取数据进行序列化处理,得到序列化后的数据;
将所述序列化后的数据封装为二进制格式的数据发送给所述客户端。
可选的,所述管理服务器与所述客户端之间的长连接,采用如下步骤建立:
管理服务器在接收到所述客户端发送的长连接建立请求时,获取所述客户端的位置信息;
按照所述位置信息,将与所述客户端位置最近的接入服务器分配给所述客户端,以使得所述客户端通过所分配的接入服务器建立与所述管理服务器之间的长连接。
如图4所示,本发明一实施例的即时通讯系统,该系统包括:
管理服务器401、客户端402以及网关服务器403;所述管理服务器401与所述客户端402之间建立有长连接;所述管理服务器401与所述网关服务器403属于相同的局域网;
所述客户端402,用于向所述管理服务器401发送数据获取请求;接收所述管理服务器401发送的待获取数据;
所述管理服务器401,用于在接收到所述客户端402发送的数据获取请求时,基于所述数据获取请求,利用所述局域网向所述网关服务器403请求待获取数据;在接收到所述待获取数据时,将所述待获取数据发送给所述客户端402;
所述网关服务器403,用于利用所述局域网将所述待获取数据返回给所述管理服务器401。
本发明实施例提供的方案中,管理服务器在接收到客户端发送的数据获取请求时,基于数据获取请求,利用局域网向网关服务器请求待获取数据,使得网关服务器将待获取数据返回给管理服务器;进而管理服务器可以在接收到所述待获取数据时,将所接收的待获取数据发送给客户端。其中,管理服务器与客户端之间建立有长连接,与多次建立短连接相比,可以减少建立连接所进行的三次握手的过程;并且,管理服务器与网关服务器属于相同的局域网,数据获取效率相对而言较高。因此,与客户端以短连接形式直接访问网关服务器获取待获取数据相比,可以减少三次握手造成的时延和客户端访问另一区域的网关服务器造成的时延,减少数据获取的时间成本,从而提高即时通讯中数据的获取效率。
相应于上述实施例,本发明实施例还提供了一种服务器,如图5所示,该服务器可以包括:
处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器通503过通信总线504完成相互间的通信;
存储器503,用于存放计算机程序;
处理器501,用于执行上述存储器503上所存放的计算机程序时,实现上述实施例中任一应用于管理服务器的即时通讯中数据的获取方法的步骤。
在具体应用中,本实施例中的服务器为即时通讯系统中的管理服务器。
本发明实施例提供的方案中,管理服务器在接收到客户端发送的数据获取请求时,基于数据获取请求,利用局域网向网关服务器请求待获取数据,使得网关服务器将待获取数据返回给管理服务器;进而管理服务器可以在接收到所述待获取数据时,将所接收的待获取数据发送给客户端。其中,管理服务器与客户端之间建立有长连接,与多次建立短连接相比,可以减少建立连接所进行的三次握手的过程;并且,管理服务器与网关服务器属于相同的局域网,数据获取效率相对而言较高。因此,与客户端以短连接形式直接访问网关服务器获取待获取数据相比,可以减少三次握手造成的时延和客户端访问另一区域的网关服务器造成的时延,减少数据获取的时间成本,从而提高即时通讯中数据的获取效率。
上述存储器可以包括ram(randomaccessmemory,随机存取存储器),也可以包括nvm(non-volatilememory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离于上述处理器的存储装置。
上述处理器可以是通用处理器,包括cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessor,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明一实施例提供的计算机可读存储介质,包含于服务器,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时,实现上述实施例中任一应用于管理服务器的即时通讯中数据的获取方法的步骤。
本发明实施例提供的方案中,管理服务器在接收到客户端发送的数据获取请求时,基于数据获取请求,利用局域网向网关服务器请求待获取数据,使得网关服务器将待获取数据返回给管理服务器;进而管理服务器可以在接收到所述待获取数据时,将所接收的待获取数据发送给客户端。其中,管理服务器与客户端之间建立有长连接,与多次建立短连接相比,可以减少建立连接所进行的三次握手的过程;并且,管理服务器与网关服务器属于相同的局域网,数据获取效率相对而言较高。因此,与客户端以短连接形式直接访问网关服务器获取待获取数据相比,可以减少三次握手造成的时延和客户端访问另一区域的网关服务器造成的时延,减少数据获取的时间成本,从而提高即时通讯中数据的获取效率。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的即时通讯中数据的获取方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、dsl(digitalsubscriberline,数字运维人员线)或无线(例如:红外线、无线电、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如:dvd(digitalversatiledisc,数字通用光盘))、或者半导体介质(例如:ssd(solidstatedisk,固态硬盘))等。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、系统和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
1.一种即时通讯中数据的获取方法,其特征在于,应用于即时通讯系统的管理服务器;所述即时通讯系统还包括客户端以及网关服务器;所述管理服务器与所述客户端之间建立有长连接;所述管理服务器与所述网关服务器属于相同的局域网;所述方法包括:
在接收到所述客户端发送的数据获取请求时,基于所述数据获取请求,利用所述局域网向所述网关服务器请求待获取数据,以使得所述网关服务器利用所述局域网将所述待获取数据返回给所述管理服务器;
在接收到所述待获取数据时,将所述待获取数据发送给所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述基于所述数据获取请求,利用所述局域网向所述网关服务器请求待获取数据,包括:
获取所述数据获取请求对应的用户信息和待获取数据的数据标识;
将所述用户信息和所述数据标识封装为二进制格式的数据获取请求;
利用所述局域网将所述二进制格式的数据获取请求发送给所述网关服务器。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测所述长连接、以及所述局域网中的任一个是否异常;
如果异常,指示所述客户端建立与所述网关服务器之间的短连接,并指示所述客户端利用超文本传输协议向所述网关服务器请求所述待获取数据。
4.根据权利要求1所述的方法,其特征在于,所述在接收到所述待获取数据时,将所述待获取数据发送给所述客户端,包括:
在接收到所述待获取数据时,对所述待获取数据进行序列化处理,得到序列化后的数据;
将所述序列化后的数据封装为二进制格式的数据发送给所述客户端。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述管理服务器与所述客户端之间的长连接,采用如下步骤建立:
管理服务器在接收到所述客户端发送的长连接建立请求时,获取所述客户端的位置信息;
按照所述位置信息,将与所述客户端位置最近的接入服务器分配给所述客户端,以使得所述客户端通过所分配的接入服务器建立与所述管理服务器之间的长连接。
6.一种即时通讯中数据的获取装置,其特征在于,应用于即时通讯系统的管理服务器;所述即时通讯系统还包括客户端以及网关服务器;所述管理服务器与所述客户端之间建立有长连接;所述管理服务器与所述网关服务器属于相同的局域网;所述装置包括:
数据请求模块,用于在接收到所述客户端发送的数据获取请求时,基于所述数据获取请求,利用所述局域网向所述网关服务器请求待获取数据,以使得所述网关服务器利用所述局域网将所述待获取数据返回给所述管理服务器;
数据发送模块,用于在接收到所述待获取数据时,将所述待获取数据发送给所述客户端。
7.根据权利要求6所述的装置,其特征在于,所述数据请求模块,具体用于:
获取所述数据获取请求对应的用户信息和待获取数据的数据标识;
将所述用户信息和所述数据标识封装为二进制格式的数据获取请求;
利用所述局域网将所述二进制格式的数据获取请求发送给所述网关服务器。
8.一种即时通讯系统,其特征在于,所述系统包括:管理服务器、客户端以及网关服务器;所述管理服务器与所述客户端之间建立有长连接;所述管理服务器与所述网关服务器属于相同的局域网;
所述客户端,用于向所述管理服务器发送数据获取请求;接收所述管理服务器发送的待获取数据;
所述管理服务器,用于在接收到所述客户端发送的数据获取请求时,基于所述数据获取请求,利用所述局域网向所述网关服务器请求待获取数据;在接收到所述待获取数据时,将所述待获取数据发送给所述客户端;
所述网关服务器,用于利用所述局域网将所述待获取数据返回给所述管理服务器。
9.一种服务器,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如权利要求1-5任一项所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-5任一项所述的方法步骤。
技术总结