背景技术
近年来,以浏览器为客户端的实时通信***,以其使用方便、简洁、不受限制等特点,已经被广大用户所接受。但是由于浏览器本身的特点,使其即时信息、状态、消息通知等方面不能实时与客户端同步。可见,解决浏览器客户端与服务端信息的实时同步,是提高用户体验浏览器产品的衡量指标之一。
目前浏览器客户端在HTTP(超文本传输协议)下,是以“拉”模式的交互方式获取数据,即,浏览器客户端定时向服务端发送HTTP请求。服务端在收到HTTP请求后,查看本地是否存在需要返回的数据。如果有需要返回的数据,服务端通过HTTP响应将数据返回至客户端。显然,这种拉模式对于服务端来讲,是被动方式向客户端发送数据,当服务端出现新数据时,在没有收到HTTP请求的情况下,是无法向浏览器客户端发送新数据的。有鉴于此,当前有必要基于HTTP协议实现更多的交互方式,以使服务端更加灵活地向客户端发送数据。
说明书内容
本说明书实施例的目的是提供一种交互方法、客户端设备及服务端设备,能够基于HTTP协议实现更多的交互方式,从而让服务端更加灵活地向客户端发送数据。
为实现上述目的,本说明书实施例采用下述技术方案:
第一方面,本说明书实施例提供一种应用于客户端的交互方法,包括:
向服务端发送一交互方式的第一超文本传输协议HTTP请求,所述第一HTTP请求携带有所述交互方式的信息、所述第一HTTP请求的标识和确定所述第一HTTP请求的应答数据的信息;
接收服务端发送的HTTP响应,所述HTTP响应携带有所述第一HTTP请求的应答数据和所述第一HTTP请求的标识;
根据所述HTTP响应中的所述第一HTTP请求的应答数据和所述第一HTTP请求的标识,处理所述第一HTTP请求。
第二方面,本说明书实施例提供一种应用于服务端的交互方法,包括:
接收客户端发起的一交互方式的第一HTTP请求,所述第一HTTP请求携带有所述交互方式的信息、所述第一HTTP请求的标识和确定所述第一HTTP请求的应答数据的信息;
根据所述第一HTTP请求中的所述交互方式的信息和确定所述第一HTTP请求的应答数据的信息,向所述客户端发送HTTP响应,所述HTTP响应携带有所述第一HTTP请求的标识和所述第一HTTP请求的所述应答数据。
第三方面,本说明书实施例提供一种客户端设备,包括:
请求发送模块,向服务端发送一交互方式的第一HTTP请求,所述第一HTTP请求携带有所述交互方式的信息、所述第一HTTP请求的标识和确定所述第一HTTP请求的应答数据的信息;
响应接收模块,接收服务端发送的HTTP响应,所述HTTP响应携带有所述第一HTTP请求的应答数据和所述第一HTTP请求的标识;
处理模块,根据所述HTTP响应中的所述第一HTTP请求的应答数据和所述第一HTTP请求的标识,处理所述第一HTTP请求。
第四方面,本说明书实施例提供一种服务端设备,包括:
请求接收模块,接收客户端发起的一交互方式的第一HTTP请求,所述第一HTTP请求携带有所述交互方式的信息、所述第一HTTP请求的标识和确定所述第一HTTP请求的应答数据的信息;
响应发送模块,根据所述第一HTTP请求中的所述交互方式的信息和确定所述第一HTTP请求的应答数据的信息,向所述客户端发送HTTP响应,所述HTTP响应携带有所述第一HTTP请求的标识和所述第一HTTP请求的所述应答数据。
第五方面,本说明书实施例提供一种客户端设备,包括:包括:存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如下步骤:
向服务端发送一交互方式的第一HTTP请求,所述第一HTTP请求携带有所述交互方式的信息、所述第一HTTP请求的标识和确定所述第一HTTP请求的应答数据的信息;
接收服务端发送的HTTP响应,所述HTTP响应携带有所述第一HTTP请求的应答数据和所述第一HTTP请求的标识;
根据所述HTTP响应中的所述第一HTTP请求的应答数据和所述第一HTTP请求的标识,处理所述第一HTTP请求。
第六方面,本说明书实施例提供一种服务端设备,包括:存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如下步骤:
接收客户端发起的一交互方式的第一HTTP请求,所述第一HTTP请求携带有所述交互方式的信息、所述第一HTTP请求的标识和确定所述第一HTTP请求的应答数据的信息;
根据所述第一HTTP请求中的所述交互方式的信息和确定所述第一HTTP请求的应答数据的信息,向所述客户端发送HTTP响应,所述HTTP响应携带有所述第一HTTP请求的标识和所述第一HTTP请求的所述应答数据。
第七方面,本说明书实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
向服务端发送一交互方式的第一HTTP请求,所述第一HTTP请求携带有所述交互方式的信息、所述第一HTTP请求的标识和确定所述第一HTTP请求的应答数据的信息;
接收服务端发送的HTTP响应,所述HTTP响应携带有所述第一HTTP请求的应答数据和所述第一HTTP请求的标识;
根据所述HTTP响应中的所述第一HTTP请求的应答数据和所述第一HTTP请求的标识,处理所述第一HTTP请求。
第八方面,本说明书实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
接收客户端发起的一交互方式的第一HTTP请求,所述第一HTTP请求携带有所述交互方式的信息、所述第一HTTP请求的标识和确定所述第一HTTP请求的应答数据的信息;
根据所述第一HTTP请求中的所述交互方式的信息和确定所述第一HTTP请求的应答数据的信息,向所述客户端发送HTTP响应,所述HTTP响应携带有所述第一HTTP请求的标识和所述第一HTTP请求的所述应答数据。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
本说明书实施例在原有HTTP请求基础上增加了交互方式的信息和HTTP请求的标识,使得服务端在接收到HTTP请求后,按照HTTP请求所指示的交互方式向客户端返回HTTP响应,并在HTTP响应中携带该HTTP请求的标识,使得客户端在接收到HTTP响应后,根据HTTP响应中的HTTP请求的标识,匹配出应答数据所对应的HTTP请求,从而根据应答数据处理HTTP请求,完成一个交互流程。显然,本说明书实施例基于HTTP协议实现了不同交互方式的通信,服务端除了原有的被动方式向客户端发送数据外,还可以主动方式向客户端发送数据,从而保证数据发送的及时性。此外,由于HTTP请求的标识能够使客户端准确地找到应答数据所匹配的HTTP请求,因此服务端一次返回的HTTP响应可以携带多个HTTP请求的应答数据,从而提高下行数据的发送效率,进而在HTTP请求突增场景下,有效避免服务端出现数据返回延迟的现象。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
如前所述,在HTTP中,目前浏览器客户端(下文简称客户端)是以拉模式的交互方式获取数据。拉模式也称为请求request模式,是一问一答机制,服务端在有新数据时,需要浏览器客户端先发起HTTP请求后,才能通过HTTP响应将数据返回给客户端。在实际应用中,为了避免给服务端产生过多的开销,客户端并不会频繁向服务端发送HTTP请求,因此当服务端出新数据时,无法及时返回给客户端。
为了能够保证客户端能够及时获取数据,本说明书实施例对HTTP的通信进行改进,使HTTP不再限于拉模式的交互方式,例如,还可以是推push模式和长轮询long polling模式等由服务端主动向客户端发送数据的交互方式。
一方面,本说明书实施例提供一种应用于客户端交互方法,如图1所示,包括:
步骤102,向服务端发送一交互方式的第一HTTP请求,第一HTTP请求携带有上述交互方式的信息、第一HTTP请求的标识和确定第一HTTP请求的应答数据的信息;
针对步骤102而言:
第一HTTP请求的交互方式并不在限于是上文所介绍的拉模式,还可以是推模式、长轮询模式等由服务端主动向客户端发送数据的交互方式。因此第一HTTP请求中需要携带交互方式的信息,以向服务端指示第一HTTP请求所应用的交互方式,使服务端也同样遵守该交互方式返回HTTP应答。
此外,第一HTTP请求携带自身的标识可以让服务端在获得第一HTTP请求的应答数据后,将该第一HTTP请求的应答数据与第一HTTP请求的标识关联返回至客户端。客户端在接收服务端返回的应答数据后,能够根据应答数据关联的第一HTTP请求的标识,匹配出应答数据对应的第一HTTP请求。在实际应用中,第一HTTP请求的标识可以是第一HTTP请求的唯一特征,例如第一HTTP请求的时间戳、第一HTTP请求的通用唯一识别码(UUID,Universally Unique Identifier)等。
此外,确定第一HTTP请求的应答数据的信息可以根据交互方式来灵活设置。例如,request模式的交互方式是一问一答机制,服务端在接收第一HTTP请求后,就需要进行响应,因此以request模式发送第一HTTP请求,一般用于获取服务端当前已存在的数据,所以确定第一HTTP请求的应答数据的信息可以是直接明确表示客户端需要获取的数据的信息。而对于push模式和long polling模式的交互方式,是服务端与客户端先建立连接,当服务端产生新的数据时,再通过该连接主动向客户端发送HTTP响应。可见,push模式和longpolling模式发送第一HTTP请求可用于获取服务端后续产生的数据,所以确定第一HTTP请求的应答数据的信息可以是触发应答数据的业务事件的信息,服务端根据业务事件的信息,即可对业务事件进行跟进和/或处理,从而获得由该业务事件触发的应答数据。
步骤104,接收服务端发送的HTTP响应,HTTP响应携带有第一HTTP请求的标识和关联第一HTTP请求的标识的应答数据;
针对步骤104而言:
服务端是按照第一HTTP请求的交互方式,返回HTTP响应。作为示例性介绍,第一HTTP请求是request模式的交互方式,则服务端按照request模式的应答规则向客户端返回HTTP响应;再比如,第一HTTP请求是long polling模式的交互方式,则服务端按照longpolling模式的应答规则向客户端返回HTTP响应。
步骤106,根据HTTP响应中的第一HTTP请求的标识和关联第一HTTP请求的标识的应答数据,处理第一HTTP请求。
针对步骤106而言:
客户端根据HTTP响应中的第一HTTP请求的标识,匹配出第一HTTP请求;之后根据HTTP响应中的与第一HTTP请求的标识相关联的应答数据,处理匹配出的第一HTTP请求。
在实际应用中,客户端可以使用至少一种交互方式向服务端并发多个HTTP请求,对应地也会接收服务端返回的不同HTTP请求所触发的HTTP响应。基于HTTP响应中的HTTP请求的标识,可以简单、有效地将不同应答数据关联至正确的HTTP请求。
需要给予说明的是。
本实施例的HTTP响应一次可以返回一个HTTP请求的应答数据,即HTTP响应携带一个HTTP请求的标识以及关联该HTTP请求的标识的应答数据。服务端在收到HTTP响应后,可根据HTTP响应中的HTTP请求的标识,来匹配出HTTP响应中的应答数据对应的是哪个HTTP请求,之后根据应答数据,处理匹配出HTTP请求。
或者,
本实施例的HTTP响应一次可以返回至少两个HTTP请求的应答数据,即HTTP响应携带有至少两个HTTP请求的应答数据以及与这些应答数据一一关联的至少两个HTTP请求的标识。服务端在收到HTTP响应后,可以根据HTTP响应中的HTTP请求的标识,分别为HTTP响应中的不同应答数据匹配出对应的HTTP请求,之后分别根据这些应答数据,处理相匹配的HTTP请求。
综上所述,本实施例的交互方法在原有HTTP请求基础上增加了交互方式的信息和HTTP请求的标识,使得服务端在接收到HTTP请求后,按照HTTP请求所指示的交互方式向客户端返回HTTP响应,并在HTTP响应中携带该HTTP请求的标识,使得客户端在接收到HTTP响应后,根据HTTP响应中的HTTP请求的标识,匹配出应答数据所对应的HTTP请求,从而根据应答数据处理HTTP请求。显然,本说明书实施例基于HTTP协议实现了不同交互方式的通信,服务端除了原有的被动方式向客户端发送数据外,还可以主动方式向客户端发送数据,从而保证数据发送的及时性。
具体地,本实施例中,客户端可以采用交互方式包括请求request模式、push模式和long polling模式三者中的一种。
其中,
request模式即上文介绍的拉模式,规定客户端和服务端采用一问一答机制。即,客户端发送request模式的第一HTTP请求后,服务端即刻处理该第一HTTP请求,并将处理获得的应答数据通过HTTP响应返回客户端。
long polling模式是指客户端向服务端发起long polling模式的第一HTTP请求,建立long polling模式的连接通道,若此时服务端没有应答数据,会hold住该连接通道,直到服务端获得应答数据或者等待一定时间超时,通过该连接通道以主动方式返回HTTP响应。客户端通过该连接通道接收到HTTP响应时,向服务端发送新一轮的long polling模式的第二HTTP请求,使服务端基于第二HTTP请求返回该第二HTTP请求对应的应答数据。
push模式是指客户端发送push模式的第一HTTP请求后,处理第一HTTP请求,在应答数据获得后,以主动方式向客户端返回应答数据。
与之对应地,本说明书实施例还提供一种应用于服务端的交互方法,如图2所示,包括:
步骤202,接收客户端发起的一交互方式的第一HTTP请求,第一HTTP请求携带有上述交互方式的信息、第一HTTP请求的标识和确定第一HTTP请求的应答数据的信息;
针对步骤202而言:
第一HTTP请求的交互方式可以由客户端灵活设置,可以是上述的request模式、push模式和long polling模式三者中的一种。第一HTTP请求的标识可以是第一HTTP请求的唯一特征,例如第一HTTP请求的时间戳、第一HTTP请求的UUID等。
步骤204,根据第一HTTP请求中的交互方式的信息和确定第一HTTP请求的应答数据的信息,向客户端发送HTTP响应,HTTP响应携带有第一HTTP请求的标识和第一HTTP请求的应答数据。
针对步骤204而言:
服务端根据第一HTTP请求中的交互方式的信息,确定出第一HTTP请求的交互方式,以及根据第一HTTP请求中的确定第一HTTP请求的应答数据的信息,获得第一HTTP请求的应答数据。之后,按照确定出的交互方式,向客户端发送携带第一HTTP请求的标识和第一HTTP请求的应答数据的HTTP响应。
其中,第一HTTP请求的应答数据与第一HTTP请求的标识具有关联关系。HTTP响应中一次可以携带至少两个不同的HTTP请求的应答数据,这些应答数据均分别关联各自对应的HTTP请求的标识。客户端在接收到HTTP响应时,根据HTTP响应中的不同应答数据与不同HTTP请求的标识的关联关系,为不同应答数据匹配出正确的HTTP请求,在匹配后,即可通过应答数据处理对应的HTTP请求。显然,一次返回的HTTP响应中可以携带多个不同HTTP请求的应答数据,可提高服务端发送下行数据的效率,进而在HTTP请求突增场景下,有效避免服务端出现数据返回延迟的现象。
下面对步骤204进行详细介绍。
示例性地:
服务端按照request模式,向客户端发送HTTP响应的步骤具体包括:按照对HTTP响应的一问一答机制,向客户端发送request模式的HTTP响应。
服务端按照long polling模式,向客户端发送HTTP响应,包括:在接收到第一HTTP请求时,建立并挂起与客户端的long polling模式的连接通道,并将连接通道与客户端的标识进行关联;在获得应答数据时,根据客户端的标识,匹配出挂起的连接通道;使用匹配出的连接通道,向客户端发送long polling模式的HTTP响应。其中,上述客户端的标识可以由第一HTTP请求携带,服务端从第一HTTP请求中获取客户端的标识。
服务端按照push模式,向客户端发送HTTP响应,包括:在获得应答数据且基于其他HTTP请求建立了与客户端的long polling模式的连接通道时,使用该连接通道,向客户端发送long polling模式的HTTP响应。
可以看出,本实施例push模式的交互方式只有push模式的上行发送,而下行发送复用的是long polling模式的连接通道。即,服务端在处理push模式的第一HTTP请求后,以long polling模式的HTTP响应返回至客户端。
基于上述设计,本实施例push模式的上行发送可以视为对long polling模式的补充,弥补了long polling模式建立连接通道后,没有返回HTTP响应,就不能再次发起HTTP请求的问题。
下面结合客户端和服务端,以一实际应用对本说明书中的交互方法进行详细介绍。
如图3所示,假设本实际应用中,客户端A在8:30向服务端发送了request模式的HTTP请求,以获取目标参数X。
该request模式的HTTP请求结构如下:
服务端在接收到request模式的HTTP请求时,基于HTTP请求中的payload:X,获取目标参数X的数据,之后将目标参数X的数据作为应答数据,向客户端A发送request模式的HTTP响应。
该request模式的HTTP响应结构如下:
客户端A在收到request模式的HTTP响应后,基于traceID:8:30,匹配出HTTP响应中的payload:X对应的traceID:8:30的HTTP请求,并基于该payload:X处理traceID:8:30的HTTP请求。
之后,假设客户端A在9:00向服务端又发送了long polling模式的HTTP请求,以获取业务事件Y触发的应答数据。
该long polling模式的HTTP请求结构如下:
服务端在接收到long polling模式的HTTP请求时,建立与客户端A的longpolling模式的连接通道,并将该连接通道与deviceID:A关联后挂起。之后,服务端基于HTTP请求中的event和payload,对业务事件Y进行跟进和/或处理,等待获取业务事件Y触发traceID:9:00的应答数据。
假设业务事件Y触发traceID:9:00的应答数据前,客户端A在9:10向服务端发送了push模式的HTTP请求,以获取业务事件Z触发的traceID:9:10的应答数据。
则push模式的HTTP请求结构如下:
服务端在接收到push模式的HTTP请求时,向客户端A返回一个形式上的空应答200OK,并基于HTTP请求中的event:Z和payload:Z的相关数据,对业务事件Z进行跟进和/或处理,获取业务事件Y触发的traceID:9:10的应答数据。
当服务端对业务事件Y处理完成后,获得到业务事件Y触发的traceID:9:00的应答数据时,根据deviceID:A找到挂起的连接通道,并使用该向客户端A发送long polling模式的HTTP响应,其中,该long polling模式的HTTP响应不仅携带有上述long polling模式的HTTP请求的应答数据,还携带有上述push模式的HTTP请求的应答数据。
该long polling模式的HTTP响应结构如下:
客户端A在接收到long polling模式的HTTP响应后,一方面,向服务端发送新一轮long polling模式的HTTP请求;另一方面,基于HTTP响应中的traceID:9:00,确定应答数据payload:Y对应的是traceID:9:00的HTTP请求,并根据应答数据payload:Y对traceID:9:00的HTTP请求进行处理,以及基于HTTP响应中的traceID:9:10,确定出应答数据payload:Z对应的是traceID:9:10的HTTP请求,并据应答数据payload:Z对traceID:9:10的HTTP请求进行处理。
以上实际应用仅用于示例性介绍本实施例的交互方法,并不限定本说明书的保护范围。作为其他可行方案,当服务端获得push模式的HTTP请求的应答数据payload:Z后,如果尚未获得long polling模式的HTTP请求的应答数据payload:Y,可以先使用deviceID:A的连接通道,单独向客户端A发送一个long polling模式的HTTP响应,该HTTP响应携带push模式的HTTP请求的应答数据payload:Y。客户端A在接收到后,可以再向服务端发起新的一轮long polling模式的HTTP请求,服务端基于新一轮的long polling模式的HTTP请求,向客户端A返回应答数据payload:Y。
另一方面,本说明书实施例还提供一种客户端设备,如图4所示,包括:
请求发送模块41,向服务端发送一交互方式的第一HTTP请求,第一HTTP请求携带有所述交互方式的信息、第一HTTP请求的标识和确定第一HTTP请求的应答数据的信息;
响应接收模块42,接收服务端发送的HTTP响应,HTTP响应携带有第一HTTP请求的应答数据和第一HTTP请求的标识;
处理模块43,根据HTTP响应中的第一HTTP请求的应答数据和第一HTTP请求的标识,处理第一HTTP请求。
显然,本实施例的客户端设备是本说明书上述提供的应用于客户端的交互方法的执行主体。因此该交互方法所能实现的技术效果,本实施例的客户端设备同样也能够实现。
具体地,所述HTTP响应中的所述第一HTTP请求的应答数据和所述第一HTTP请求的标识具有关联关系;
本实施例的处理模块43根据所述HTTP响应中的所述第一HTTP请求的标识,匹配出所述第一HTTP请求,并根据所述HTTP响应中的与所述第一HTTP请求的标识相关联的应答数据,处理匹配出的所述第一HTTP请求。
可选地,所述交互方式包括请求request模式、长轮询long polling模式和推push模式三者中的一种。
其中,若所述HTTP响应由所述服务端使用long polling模式的连接通道发送的,则所述发送模块41在接收到所述HTTP响应时,向服务端发送long polling模式的第二HTTP请求,使服务单基于第二HTTP请求返回应答数据。
此外,本说明书实施例还提供一种服务端设备,如图5所示,包括:
请求接收模块51,接收客户端发起的一交互方式的第一HTTP请求,所述第一HTTP请求携带有所述交互方式的信息、所述第一HTTP请求的标识和确定所述第一HTTP请求的应答数据的信息;
响应发送模块52,根据第一HTTP请求中的所述交互方式的信息和确定所述第一HTTP请求的应答数据的信息,向所述客户端发送HTTP响应,所述HTTP响应携带有所述第一HTTP请求的标识和所述第一HTTP请求的所述应答数据。
显然,本实施例的服务端设备是本说明书上述提供的应用于服务端的交互方法的执行主体。因此该交互方法所能实现的技术效果,本实施例的服务端设备同样也能够实现。
具体地,本实施例中所述响应发送模块52具体用于:
根据所述第一HTTP请求中的所述交互方式的信息,确定出所述第一HTTP请求的交互方式;并根据所述第一HTTP请求中的确定所述第一HTTP请求的应答数据的信息,获得应答数据;以及按照确定出的交互方式,向所述客户端发送携带所述应答数据的HTTP响应。
可选地,所述交互方式包括request模式、push模式和long polling模式三者中的一种。
其中,当所述交互方式为request模式时,所述响应发送模块52按照request模式,向所述客户端发送携带所述应答数据的HTTP响应,包括:按照所述HTTP响应的一问一答机制,向所述客户端发送request模式的HTTP响应。
其中,当所述交互方式为long polling模式时,所述第一HTTP请求还携带有所述客户端的标识;响应发送模块52按照long polling模式,向所述客户端发送携带所述应答数据的HTTP响应,包括:在接收到所述第一HTTP请求时,建立并挂起与所述客户端的longpolling模式的连接通道,并将所述连接通道与所述客户端的标识进行关联;在获得所述应答数据时,根据所述客户端的标识,匹配出挂起的连接通道;使用匹配出的连接通道,向所述客户端发送long polling模式的HTTP响应。
其中,当所述交互方式为push模式时,响应发送模块52按照long polling模式,向所述客户端发送携带所述应答数据的HTTP响应,包括:在获得所述应答数据且基于其他HTTP请求建立了与所述客户端的long polling模式的连接通道时,使用该连接通道,向所述客户端发送long polling模式的HTTP响应。
可选地,所述确定所述第一HTTP请求的应答数据的信息包括触发所述应答数据的业务事件的信息;
所述响应发送模块52根据所述第一HTTP请求中的确定所述第一HTTP请求的应答数据的信息,获得应答数据,包括:
根据所述第一HTTP请求中的触发所述应答数据的业务事件的信息,确定出业务事件;
获得由所述业务事件触发的应答数据。
此外,本说明书实施例还提供一种客户端设备,如图6所示包括:
至少一个处理器601、存储器602、至少一个网络接口604和用户接口603。终端600中的各个组件通过总线***605耦合在一起。可理解,总线***605用于实现这些组件之间的连接通信。总线***605除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线***605。
其中,用户接口603可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本说明书实施例中的存储器602可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read-Only Memory)、可编程只读存储器(PROM,Programmable)、可擦除可编程只读存储器(EPROM,Erasable PROM)、电可擦除可编程只读存储器(EEPROM,Electrically EPROM)或闪存。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static RAM)、动态随机存取存储器(DRAM,Dynamic RAM)、同步动态随机存取存储器(SDRAM,Synchronous DRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,DoubleData Rate SDRAM)、增强型同步动态随机存取存储器(ESDRAM,Enhanced SDRAM)、同步连接动态随机存取存储器(SLDRAM,Synchlink DRAM)和直接内存总线随机存取存储器(DRRAM,Direct Rambus RAM)。本说明书实施例描述的***和方法的存储器602旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器602存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作***6021和应用程序6022。
其中,操作***6021,包含各种***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序6022,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本说明书实施例方法的程序可以包含在应用程序6022中。
在本说明书实施例中,客户端设备600还包括:存储在存储器上602并可在处理器601上运行的计算机程序,计算机程序被处理器601执行时实现如下的步骤:
向服务端发送一交互方式的第一HTTP请求,所述第一HTTP请求携带有所述交互方式的信息、所述第一HTTP请求的标识和确定所述第一HTTP请求的应答数据的信息;
接收服务端发送的HTTP响应,所述HTTP响应携带有所述第一HTTP请求的应答数据和所述第一HTTP请求的标识;
根据所述HTTP响应中的所述第一HTTP请求的应答数据和所述第一HTTP请求的标识,处理所述第一HTTP请求。
可选地,所述HTTP响应中的所述第一HTTP请求的应答数据和所述第一HTTP请求的标识具有关联关系;
所述计算机程序被所述处理器执行根据所述HTTP响应中的所述第一HTTP请求的应答数据和所述第一HTTP请求的标识,处理所述第一HTTP请求时,还实现如下的步骤:
根据所述HTTP响应中的所述第一HTTP请求的应答数据和所述第一HTTP请求的标识,处理所述第一HTTP请求,包括:
根据所述HTTP响应中的所述第一HTTP请求的标识,匹配出所述第一HTTP请求;
根据所述HTTP响应中的与所述第一HTTP请求的标识相关联的应答数据,处理匹配出的所述第一HTTP请求。
可选地,所述交互方式包括请求request模式、长轮询long polling模式和推push模式三者中的一种。
可选地,若所述HTTP响应由所述服务端使用long polling模式的连接通道发送的,则所述计算机程序被所述处理器执行时,还实现如下的步骤:
在接收到所述HTTP响应时,向服务端发送long polling模式的第二HTTP请求,使服务端基于所述第二HTTP请求,向所述客户端返回应答数据。
此外,本说明书实施例还提供一种服务端设备,如图7所示,包括
至少一个处理器701、存储器702、至少一个网络接口704和用户接口703。终端700中的各个组件通过总线***705耦合在一起。可理解,总线***705用于实现这些组件之间的连接通信。总线***705除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线***705。
其中,用户接口703可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本说明书实施例中的存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read-Only Memory)、可编程只读存储器(PROM,Programmable)、可擦除可编程只读存储器(EPROM,Erasable PROM)、电可擦除可编程只读存储器(EEPROM,Electrically EPROM)或闪存。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static RAM)、动态随机存取存储器(DRAM,Dynamic RAM)、同步动态随机存取存储器(SDRAM,Synchronous DRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,DoubleData Rate SDRAM)、增强型同步动态随机存取存储器(ESDRAM,Enhanced SDRAM)、同步连接动态随机存取存储器(SLDRAM,Synchlink DRAM)和直接内存总线随机存取存储器(DRRAM,Direct Rambus RAM)。本说明书实施例描述的***和方法的存储器702旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器702存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作***7021和应用程序7022。
其中,操作***7021,包含各种***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序7022,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本说明书实施例方法的程序可以包含在应用程序7022中。
在本说明书实施例中,服务端设备700还包括:存储在存储器上702并可在处理器701上运行的计算机程序,计算机程序被处理器701执行时实现如下的步骤:
接收客户端发起的一交互方式的第一HTTP请求,所述第一HTTP请求携带有所述交互方式的信息、所述第一HTTP请求的标识和确定所述第一HTTP请求的应答数据的信息;
根据所述第一HTTP请求中的所述交互方式的信息和确定所述第一HTTP请求的应答数据的信息,向所述客户端发送HTTP响应,所述HTTP响应携带有所述第一HTTP请求的标识和所述第一HTTP请求的所述应答数据。
可选地,所述计算机程序被所述处理器执行根据所述第一HTTP请求中的所述交互方式的信息和确定所述第一HTTP请求的应答数据的信息,向所述客户端发送HTTP响应时,具体实现如下步骤:
根据所述第一HTTP请求中的所述交互方式的信息,确定出所述第一HTTP请求的交互方式;
根据所述第一HTTP请求中的确定所述第一HTTP请求的应答数据的信息,获得应答数据;
按照确定出的交互方式,向所述客户端发送携带所述应答数据的HTTP响应。
可选地,所述交互方式包括request模式、push模式和long polling模式三者中的一种。
可选地,当所述交互方式为request模式时,所述计算机程序被所述处理器执行按照确定出的交互方式,向所述客户端发送HTTP响应时,具体实现如下步骤:
按照对所述HTTP响应的一问一答机制,向所述客户端发送request模式的HTTP响应。
可选地,当所述交互方式为long polling模式时,所述第一HTTP请求还携带有所述客户端的标识;所述计算机程序被所述处理器执行按照确定出的交互方式,向所述客户端发送HTTP响应时,具体实现如下步骤:
在接收到所述第一HTTP请求时,建立并挂起与所述客户端的long polling模式的连接通道,并将所述连接通道与所述客户端的标识进行关联;
在获得所述应答数据时,根据所述客户端的标识,匹配出挂起的连接通道;
使用匹配出的连接通道,向所述客户端发送long polling模式的HTTP响应。
可选地,当所述交互方式为push模式时,所述计算机程序被所述处理器执行按照确定出的交互方式,向所述客户端发送携带所述应答数据的HTTP响应时,具体实现如下步骤:
在获得所述应答数据且基于其他HTTP请求建立了与所述客户端的long polling模式的连接通道时,使用该连接通道,向所述客户端发送long polling模式的HTTP响应。
可选地,所述确定所述第一HTTP请求的应答数据的信息包括触发所述应答数据的业务事件的信息;
所述计算机程序被所述处理器执行根据所述第一HTTP请求中的确定所述第一HTTP请求的应答数据的信息,获得应答数据时,具体实现如下步骤:
根据所述第一HTTP请求中的触发所述应答数据的业务事件的信息,确定出业务事件;
获得由所述业务事件触发的应答数据。此外,本说明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
向服务端发送一交互方式的第一HTTP请求,所述第一HTTP请求携带有所述交互方式的信息、所述第一HTTP请求的标识和确定所述第一HTTP请求的应答数据的信息;
接收服务端发送的HTTP响应,所述HTTP响应携带有所述第一HTTP请求的应答数据和所述第一HTTP请求的标识;
根据所述HTTP响应中的所述第一HTTP请求的应答数据和所述第一HTTP请求的标识,处理所述第一HTTP请求。
可选地,所述HTTP响应中的所述第一HTTP请求的应答数据和所述第一HTTP请求的标识具有关联关系;
所述计算机程序被所述处理器执行根据所述HTTP响应中的所述第一HTTP请求的应答数据和所述第一HTTP请求的标识,处理所述第一HTTP请求时,还实现如下的步骤:
根据所述HTTP响应中的所述第一HTTP请求的应答数据和所述第一HTTP请求的标识,处理所述第一HTTP请求,包括:
根据所述HTTP响应中的所述第一HTTP请求的标识,匹配出所述第一HTTP请求;
根据所述HTTP响应中的与所述第一HTTP请求的标识相关联的应答数据,处理匹配出的所述第一HTTP请求。
可选地,所述交互方式包括请求request模式、长轮询long polling模式和推push模式三者中的一种。
可选地,若所述HTTP响应由所述服务端使用long polling模式的连接通道发送的,则所述计算机程序被所述处理器执行时,还实现如下的步骤:
在接收到所述HTTP响应时,向服务端发送long polling模式的第二HTTP请求,使服务端基于所述第二HTTP请求,向所述客户端返回应答数据。
此外,本说明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
接收客户端发起的一交互方式的第一HTTP请求,所述第一HTTP请求携带有所述交互方式的信息、所述第一HTTP请求的标识和确定所述第一HTTP请求的应答数据的信息;
根据所述第一HTTP请求中的所述交互方式的信息和确定所述第一HTTP请求的应答数据的信息,向所述客户端发送HTTP响应,所述HTTP响应携带有所述第一HTTP请求的标识和所述第一HTTP请求的所述应答数据。
可选地,所述计算机程序被所述处理器执行根据所述第一HTTP请求中的所述交互方式的信息和确定所述第一HTTP请求的应答数据的信息,向所述客户端发送HTTP响应时,具体实现如下步骤:
根据所述第一HTTP请求中的所述交互方式的信息,确定出所述第一HTTP请求的交互方式;
根据所述第一HTTP请求中的确定所述第一HTTP请求的应答数据的信息,获得应答数据;
按照确定出的交互方式,向所述客户端发送携带所述应答数据的HTTP响应。
可选地,所述交互方式包括request模式、push模式和long polling模式三者中的一种。
可选地,当所述交互方式为request模式时,所述计算机程序被所述处理器执行按照确定出的交互方式,向所述客户端发送携带所述应答数据的HTTP响应时,具体实现如下步骤:
按照对所述HTTP响应的一问一答机制,向所述客户端发送request模式的HTTP响应。
可选地,当所述交互方式为long polling模式时,所述第一HTTP请求还携带有所述客户端的标识;所述计算机程序被所述处理器执行按照确定出的交互方式,向所述客户端发送携带所述应答数据的HTTP响应时,具体实现如下步骤:
在接收到所述第一HTTP请求时,建立并挂起与所述客户端的long polling模式的连接通道,并将所述连接通道与所述客户端的标识进行关联;
在获得所述应答数据时,根据所述客户端的标识,匹配出挂起的连接通道;
使用匹配出的连接通道,向所述客户端发送long polling模式的HTTP响应。
可选地,当所述交互方式为push模式时,所述计算机程序被所述处理器执行按照确定出的交互方式,向所述客户端发送携带所述应答数据的HTTP响应时,具体实现如下步骤:
在获得所述应答数据且基于其他HTTP请求建立了与所述客户端的long polling模式的连接通道时,使用该连接通道,向所述客户端发送long polling模式的HTTP响应。
可选地,所述确定所述第一HTTP请求的应答数据的信息包括触发所述应答数据的业务事件的信息;
所述计算机程序被所述处理器执行根据所述第一HTTP请求中的确定所述第一HTTP请求的应答数据的信息,获得应答数据时,具体实现如下步骤:
根据所述第一HTTP请求中的触发所述应答数据的业务事件的信息,确定出业务事件;
获得由所述业务事件触发的应答数据。
本领域技术人员应明白,本说明书的实施例可提供为方法、***或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。