本申请涉及计算机技术领域,具体涉及信息传输领域,尤其涉及信息传输方法、客户端及服务器。
背景技术:
客户端在接收服务器(例如云计算平台中的云服务器)推送的信息之前,需要预先在客户端与服务器之间建立通信连接来接收服务器推送的信息。在已知的技术中,常用的建立上述通信连接的方式包括套接字SOCKET以及超文本传输协议HTTP长连接两种方式。其中,当采用套接字SOCKET方式建立通信连接时,每一个创建的套接字SOCKET对应一个网络端口,由于TCP/IP协议中规定了网络端口数量上限即65535个,因此,可创建的套接字SOCKET数量最多为65535个,从而当采用套接字SOCKET方式建立通信时,可与服务器建立的通信连接的数量受到限制,使得可以同时接收服务器推送的信息的客户端数量也受到限制。而当采用HTTP长连接建立通信连接时,无论客户端与服务器是否存在需要传输的数据,客户端与服务器均需要维护该HTTP长连接,从而造成当服务器不存在需要推送给客户端的信息时,依然消耗网络资源。
技术实现要素:
本申请提供了信息传输方法、客户端及服务器,用于解决上述背景技术部分存在的技术问题。
第一方面,本申请提供了一种信息传输方法,该方法包括:每间隔预设时间段向服务器发送信息查询请求,信息查询请求包括客户端标识信息;接收服务器返回的与客户端标识信息对应的连接指示信息,连接指示信息用于指示服务器是否存在与客户端标识信息对应的待推送信息;当连接指示信息指示服务器存在待推送信息时,建立与服务 器之间的用于传输待推送信息的超文本传输协议短连接;通过超文本传输协议短连接,接收待推送信息。
在某些实施方式中,当连接指示信息指示服务器存在待推送信息时,建立与服务器之间的用于传输待推送信息的超文本传输协议短连接包括:当连接指示信息指示服务器存在待推送信息时,建立待推送信息接收线程;通过待推送信息接收线程,建立与服务器之间的用于传输待推送信息的超文本传输协议短连接。
在某些实施方式中,每间隔预设时间段向服务器发送信息查询请求包括:建立信息查询请求发送线程;通过信息查询请求发送线程,每间隔预设时间段建立与服务器之间的用于发送信息查询请求的超文本传输协议短连接,以及通过超文本传输协议短连接向服务器发送信息查询请求。
在某些实施方式中,在每间隔预设时间段向服务器发送信息查询请求之后,还包括:将信息查询请求发送线程设置为休眠状态。
在某些实施方式中,连接指示信息包括待推送信息的数量。
第二方面,本申请提供了一种信息传输方法,该方法包括:接收客户端每间隔预设时间段发送的信息查询请求,信息查询请求包括客户端标识信息;判断是否存在与客户端标识信息对应的待推送信息,根据判断结果生成连接指示信息,连接指示信息用于指示是否存在与客户端标识信息对应的待推送信息,以及将连接指示信息发送给客户端;接收客户端通过用于传输待推送信息的超文本传输协议短连接发送的待推送信息获取请求;通过超文本传输协议短连接,将待推送信息发送给客户端。
第三方面,本申请提供了一种客户端,该客户端包括:发送单元,用于每间隔预设时间段向服务器发送信息查询请求,信息查询请求包括客户端标识信息;指示信息接收单元,用于接收服务器返回的与客户端标识信息对应的连接指示信息,连接指示信息用于指示服务器是否存在与客户端标识信息对应的待推送信息;连接建立单元,用于当连接指示信息指示服务器存在待推送信息时,建立与服务器之间的用于传输待推送信息的超文本传输协议短连接;推送信息接收单元,用 于通过超文本传输协议短连接,接收待推送信息。
在某些实施方式中,连接建立单元包括:线程建立子单元,用于当连接指示信息指示服务器存在待推送信息时,建立待推送信息接收线程;短连接建立子单元,用于通过待推送信息接收线程,建立与服务器之间的用于传输待推送信息的超文本传输协议短连接。
在某些实施方式中,发送单元包括:线程建立子单元,用于建立信息查询请求发送线程;信息查询请求发送子单元,用于通过信息查询请求发送线程,每间隔预设时间段建立与服务器之间的用于发送信息查询请求的超文本传输协议短连接,以及通过超文本传输协议短连接向服务器发送信息查询请求。
第四方面,本申请提供了一种服务器,该服务器包括:接收单元,用于接收客户端每间隔预设时间段发送的信息查询请求,信息查询请求包括客户端标识信息;判断单元,用于判断是否存在与客户端标识信息对应的待推送信息,根据判断结果生成连接指示信息,连接指示信息用于指示是否存在与客户端标识信息对应的待推送信息,以及将连接指示信息发送给客户端;信息获取请求接收单元,用于接收客户端通过用于传输待推送信息的超文本传输协议短连接发送的待推送信息获取请求;发送单元,用于通过超文本传输协议短连接,将待推送信息发送给客户端。
本申请提供的信息传输方法,通过每间隔预设时间段向服务器发送信息查询请求,通过接收到的指示服务器存在待推送信息的连接指示信息,建立HTTP短连接来接收服务器的待推送信息。使得只有在服务器存在需要推送的信息时,才会占用网络资源接收待推送信息,避免了当采用HTTP长连接方式接收推送数据时,无论是否存在需要推送给客户端信息,均需占用网络资源来维护HTTP长连接而造成的网络资源消耗的问题,进而减轻了网络负载。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出了根据本申请的信息传输方法的一个实施例的流程图;
图2示出了根据本申请的信息传输方法的另一个实施例的流程图;
图3示出了根据本申请的信息传输方法的又一个实施例的流程图;
图4示出了根据本申请的客户端的一个实施例的结构示意图;
图5示出了根据本申请的服务器的一个实施例的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参考图1,其示出了根据本申请的信息传输方法的一个实施例的流程100。该方法包括以下步骤:
步骤101,每间隔预设时间段向服务器发送信息查询请求。
在本实施例中,信息查询请求包括客户端标识信息,该客户端标识信息可以是预先在服务器注册的用于指示发送信息查询请求的客户端的信息,例如预先在服务器注册的客户端账号。在向服务器发送信息查询请求时,可以将信息查询请求承载在HTTP(Hyper Text Transfer Protocol,超文本传输协议)数据包中进行传输。将信息查询请求承载在HTTP进行传输可以采用以下方式进行:可以每间隔预设时间段(例如30秒)建立与服务器之间的HTTP连接,在与服务器建立HTTP连接之后,构建包含信息查询请求的HTTP数据包,然后将承载有信息查询请求的HTTP数据包发送至服务器。
步骤102,接收服务器返回的与客户端标识信息对应的连接指示信息。
在本实施例中,在利用建立的HTTP连接将包含客户端标识信息的信息查询请求发送至服务器后,可以接收服务器返回的与客户端标识信息对应的连接指示信息。连接指示信息可以用于表征在服务器上是否存在有与该客户端标识信息所对应的待推送信息。连接指示信息可以用一位数字进行表示,例如,用数字0表示服务器上不存在客户端标识信息所对应的待推送信息,用数字1表示服务器上存在客户端标识信息所对应的待推送信息。在接收连接指示信息之后,可以关闭建立的用于向服务器发送信息查询请求的HTTP连接。
步骤103,当连接指示信息指示服务器存在待推送信息时,建立与服务器之间的用于传输待推送信息的超文本传输协议短连接。
在本实施例中,当接收到连接指示信息之后,可以根据连接指示信息确定服务器是否存在与客户端标识信息对应的待推送信息。以连接指示信息用数字进行表示为例,当连接指示信息为数字1时,则可以确定服务器上存在与客户端标识信息对应的待推送信息,当连接指示信息为数字0时,则可以确定服务器上不存在与客户端标识信息所对应的待推送信息。在确定出服务器存在与客户端标识信息对应的待推送信息之后,可以建立与服务器的通信连接来接收服务器推送的信息。该通信连接的类型可以为HTTP短连接。可以通过以下方式建立与服务器之间的HTTP短连接:向服务器发送HTTP连接建立请求,其中,HTTP连接建立请求中包括用于指示连接类型为短连接的字段;服务器接收HTTP连接建立请求,确定连接类型为短连接,创建HTTP短连接,相应地,生成该HTTP短连接对应的连接标识,并将连接标识发送至客户端标识对应的客户端。
步骤104,通过超文本传输协议短连接,接收待推送信息。
在建立与服务器之间的HTTP短连接之后,可以利用该HTTP短连接来接收服务器推送的信息。利用HTTP短连接接收服务器推送的信息的工作原理如下:客户端向服务器发送信息获取请求,服务器向客户端返回推送信息,从而完成一次信息交互,在完成一次信息交互之后,客户端与服务器同时自动关闭该HTTP短连接,例如删除用于指示该HTTP短连接的连接标识。这样,通过建立HTTP短连接接收 服务器推送的信息之后,自动关闭HTTP连接。
本申请提供的信息传输方法,通过每间隔预设时间段向服务器发送信息查询请求,通过接收到的指示服务器存在待推送信息的连接指示信息,建立HTTP短连接来接收服务器的待推送信息。使得只有在服务器存在需要推送的信息时,才会占用网络资源接收待推送信息,避免了当采用HTTP长连接方式接收推送数据时,无论是否存在需要推送给客户端信息,均需占用网络资源来维护HTTP长连接而造成的网络资源消耗的问题,进而减轻了网络负载。
请参考图2,其示出了根据本申请的信息传输方法的另一个实施例的流程200。
本实施例的应用场景可以为:当客户端需要接收服务器端(例如云计算平台中的云服务器)推送的信息时,无需在客户端与服务器端同时维护HTTP长连接,以及客户端以被动接收方式即只能由服务器端通过HTTP长连接下发推送信息的方式来接收服务器上推送的信息,而是由客户端每间隔预设时间段主动向服务器端发起推送信息查询请求,并且根据查询结果主动触发相应地推送信息获取操作来获取服务器端的推送信息。该方法包括以下步骤:
步骤201,每间隔预设时间段向服务器发送信息查询请求。
在本实施例中,可以预先建立查询请求发送线程,利用该查询请求发送线程来向服务器发送信息查询请求。利用该查询请求发送线程来向服务器发送信息查询请求可以采用以下方式进行:首先在查询请求发送线程中,建立与服务器之间的HTTP短连接,相应地,构建包含信息查询请求的HTTP数据包,然后利用该HTTP短连接将承载有信息查询请求的HTTP数据包发送至服务器。
在本实施例的一些可选地实现方式中,在每间隔预设时间段向服务器发送信息查询请求之后,还包括:将信息查询请求发送线程设置为休眠状态。可以通过调用操作系统提供的与线程操作相关的系统函数来将线程设置为休眠状态。针对线程的相关操作(例如休眠操作)根据线程所处的操作系统而确定,不同的操作系统(例如Windows、Linux)提供不同的线程操作。以Linux操作系统为例,将信息查询请 求发送线程设置为休眠状态的方式可以为:在信息查询请求发送线程中,采用HTTP短连接发送信息查询请求之后,可以调用Linux操作系统提供的与线程休眠操作相关的系统函数(例如Sleep函数),使查询请求发送线程暂停运行,即处于休眠状态。其中,Sleep函数中包含用于指示休眠时间的时间参数,可以将间隔的时间段(例如30秒)作为指示休眠时间的时间参数。这样信息查询请求发送线程在休眠间隔的时间段之后,可以由休眠状态转换为运行状态,从而可以继续发送信息查询请求。
步骤202,接收服务器返回的与客户端标识信息对应的连接指示信息。
在本实施例中,连接指示信息包括服务器上与客户端标识信息对应的待推送信息的数量。在接收到连接指示信息之后,可以根据待推送信息的数量来判断服务器上是否存在与客户端标识信息对应的待推送信息。例如,当连接指示信息中的用于表征与客户端标识信息对应的待推送信息的数量的字段为零值时,则确定服务器上不存在与客户端标识信息对应的待推送信息,当连接指示信息中的用于表征与客户端标识信息对应的待推送信息的数量的字段不为零值时,则确定服务器上存在与客户端标识信息对应的待推送信息。
步骤203,当连接指示信息指示服务器存在待推送信息时,建立待推送信息接收线程;通过待推送信息接收线程,建立与服务器之间的用于传输待推送信息的超文本传输协议短连接。
在本实施例中,在通过连接指示信息中的待推送信息的数量确定服务器上存在待推送信息时,可以建立待推送信息接收线程用来接收服务器上的待推送信息。在建立待推送信息接收线程之后,可以在建立待推送信息接收线程中,建立与服务器之间的HTTP短连接,在与服务器建立HTTP短连接之后,在利用该HTTP短连接完成一次信息交互之后,例如客户端发送向服务器发送请求,服务器根据请求返回信息之后,该HTTP短连接在客户端与服务器两端同时自动关闭。
在本实施例中,由于用于接收服务器上待推送信息的待推送信息接收线程与用于向服务器发送信息查询请求的查询请求发送线程为两 个独立运行的线程,相应地,接收服务器上待推送信息的操作与向服务器发送信息查询请求的操作可以同时进行。通过采用两个相互独立的线程分别进行待推送信息的接收操作和信息查询请求的发送操作,使得当接收服务器待推送信息的操作的时间较长时,无需等待接收服务器待推送信息的操作结束,可以在接收服务器待推送信息的操作的同时向服务器端发送信息查询请求,从而可以及时接收服务器上的待推送信息。步骤204,通过超文本传输协议短连接,接收待推送信息。
在本实施例中,可以利用在待推送信息接收线程中建立的HTTP短连接来接收服务器上的待推送信息。在进行一次数据传输之后,即客户端向服务器发送请求以及服务器根据该请求返回信息之后,HTTP短连接将自动关闭。在HTTP短连接自动关闭之后,可以将待推送信息接收线程设置为停止运行状态。可以利用操作系统提供的与线程操作相关的系统函数来使推送信息接收线程停止运行。线程可进行的操作(例如休眠操作)根据线程所处的操作系统而确定,不同的操作系统(例如Windows、Linux)对应不同的线程的操作。以Linux操作系统为例,可以在待推送信息接收线程检测到用于用来接收服务器上的待推送信息HTTP短连接自动关闭之后,通过调用Linux操作系统提供的与停止运行线程相关的系统函数(例如Kill函数)来使得待推送信息接收线程停止运行。
请参考图3,其示出了根据本申请的信息传输方法的又一个实施例的流程300。
步骤301,接收客户端每间隔预设时间段发送的信息查询请求。
在本实施例中,信息查询请求包括客户端标识信息(例如预先在服务器上注册的客户端账号)。在接收到客户端每间隔预设时间段(例如30秒)发送的信息查询请求之后,可以根据信息查询请求中的客户端标识信息,确定发送该信息查询请求的客户端。
步骤302,判断是否存在与客户端标识信息对应的待推送信息,根据判断结果生成连接指示信息。
在本实施例中,连接指示信息可以用于表征是否存在与客户端标识对应的待推送信息。可以通过判断是否存在与客户端标识信息对应 的待推送信息,根据判断结果来生成连接指示信息。例如,当判断出存在与客户端标识信息对应的待推送信息时,可以用与客户端标识对应的待推送信息的数量来表示连接指示信息。当判断出不存在与客户端标识信息对应的待推送信息时,可以用零值进行表示连接指示信息。连接指示信息可以承载在HTTP数据包中进行传输,可以在基于连接指示信息构造HTTP数据包之后,将承载有连接指示信息的HTTP数据包发送至客户端。
步骤303,接收客户端通过用于传输待推送信息的超文本传输协议短连接发送的待推送信息获取请求。
在本实施例中,当向客户端发送的包含有待发送信息数量的连接指示信息指示服务器上存在与客户端标识信息对应的待推送信息时,会触发客户端进行接收推送信息的相关操作。例如触发客户端建立用于传输待发送信息的HTTP短连接。可以利用该建立的HTTP短连接来接收客户端发送的待推送信息获取请求。
步骤304,通过超文本传输协议短连接,将待推送信息发送给客户端。
在本实施例中,在通过建立的客户端与服务器之间的用于传输待推送信息的HTTP短连接,接收到客户端发送的待推送信息获取请求之后,可以利用该HTTP短连接,将待推送信息发送至客户端。
请参考图4,其示出了根据本申请的客户端的一个实施例的结构示意图。
如图4所示,客户端400包括:发送单元401,指示信息接收单元402,连接建立单元403,推送信息接收单元404。其中,发送单元401用于每间隔预设时间段向服务器发送信息查询请求。指示信息接收单元402用于接收服务器返回的与客户端标识信息对应的连接指示信息,连接指示信息用于指示服务器是否存在与客户端标识信息对应的待推送信息。连接建立单元403用于当连接指示信息指示服务器存在待推送信息时,建立与服务器之间的用于传输待推送信息的超文本传输协议短连接。推送信息接收单元404用于通过超文本传输协议短连接,接收待推送信息。
在本实施例的一些可选地实现方式中,连接建立单元403包括:线程建立子单元(未示出)、短连接建立子单元(未示出)。线程建立子单元用于当连接指示信息指示服务器存在所推送信息时,建立待推送信息接收线程;短连接建立子单元用于通过待推送信息接收线程,建立与服务器之间的用于传输待推送信息的超文本传输协议短连接。
在本实施例的一些可选地实现方式中,发送单元401包括:线程建立子单元(未示出)、信息查询请求发送子单元(未示出)。线程建立子单元用于建立信息查询请求发送线程;信息查询请求发送子单元用于通过信息查询请求发送线程,每间隔预设时间段建立与服务器之间的用于发送信息查询请求的超文本传输协议短连接,以及通过超文本传输协议短连接向服务器发送信息查询请求。
请参考图5,其示出了根据本申请的服务器的一个实施例的结构示意图。
如图5所示,服务器500包括:接收单元501,判断单元502,信息获取请求接收单元503,发送单元504。其中,接收单元501用于接收客户端每间隔预设时间段发送的信息查询请求,信息查询请求包括客户端标识信息。判断单元502用于判断是否存在与客户端标识信息对应的待推送信息,根据判断结果生成连接指示信息,连接指示信息用于指示是否存在与客户端标识信息对应的待推送信息,以及将连接指示信息发送给客户端。信息获取请求接收单元503用于接收客户端通过用于传输待推送信息的超文本传输协议短连接发送的待推送信息获取请求。发送单元504用于通过超文本传输协议短连接,将待推送信息发送给客户端。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括发送单元,指示信息接收单元,连接建立单元,推送信息接收单元。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,发送单元还可以被描述为“用于每间隔预设时间段向服务器发送信息查询请求”。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计 算机可读存储介质可以是上述实施例中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。所述计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本申请的信息传输方法。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。