消息推送方法及装置的制造方法

文档序号:9649056阅读:256来源:国知局
消息推送方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机领域,特别涉及一种消息推送方法及装置。
【背景技术】
[0002]在服务器向客户端推送消息时,为了实现服务器与客户端之间的实时通讯,开发人员常用的推送方法为轮询(Polling)推送。
[0003]轮询推送方法包括:客户端每隔预定时间间隔向服务器端发出获取请求,服务器端在存在推送消息时,向客户端反馈推送消息;在不存在推送消息,向客户端反馈代表空的消息。
[0004]在实现本发明实施例的过程中,发明人发现现有技术至少存在以下问题:
[0005]轮询推送方法是以频繁请求的方式来保持客户端和服务器端的同步,这就使得每个客户端在与服务器进行实时通讯的过程中,占用大量的服务器资源。

【发明内容】

[0006]为了解决现有技术的问题,本发明实施例提供了一种虚拟礼品赠送方法及装置。所述技术方案如下:
[0007]第一方面,提供了一种消息推送方法,所述方法包括:
[0008]检测客户端是否兼容网络套接字Websocket协议;
[0009]若所述客户端兼容所述Websocket协议,则基于Websocket协议进行消息推送;
[0010]若所述客户端不兼容所述Websocket协议,则基于长轮询方式进行消息推送。
[0011]在第一方面的第一种可能的实施方式中,所述检测客户端是否兼容网络套接字Websocket协议,包括:
[0012]通过预定函数检测所述客户端是否兼容网络套接字Websocket协议;
[0013]其中,所述预定函数是所述Websocket协议所提供的函数。
[0014]在第二种可能的实施方式中,所述基于长轮询方式进行消息推送,包括:
[0015]接收所述客户端发送的第i轮询请求;
[0016]在不存在待推送的消息时,忽略所述第i轮询请求且保持与所述客户端之间的网络连接;
[0017]接收所述客户端发送的第i+Ι轮询请求;所述第i+Ι轮询请求是所述网络连接超时或断开时所述客户端重新发送的轮询请求,其中i为正整数。
[0018]在第三种可能的实施方式中,所述接收所述客户端发送的第i轮询请求之后,还包括:
[0019]在存在所述待推送的消息时,向所述客户端发送所述待推送的消息。
[0020]结合第一方面、第一方面的第一种可能的实施方式、第一方面的第二种可能的实施方式或者第一方面的第三种可能的实施方式,在第四种可能的实施方式中,所述若所述客户端兼容所述Websocket协议,则基于Websocket协议进行消息推送之后,还包括:
[0021]检测与所述客户端之间的网络连接在预设时间内的中断次数是否超过预设阈值;
[0022]若所述网络连接在预设时间内的中断次数超过所述预设阈值,则基于所述长轮询方式进行消息推送。
[0023]第二方面,提供了一种消息推送装置,所述装置包括:
[0024]检测模块,用于检测客户端是否兼容网络套接字Websocket协议;
[0025]第一推送模块,用于在所述检测模块检测结果为所述客户端兼容所述Websocket协议时,基于Websocket协议进行消息推送;
[0026]第二推送模块,用于在所述检测模块检测结果为所述客户端不兼容所述Websocket协议时,基于长轮询方式进行消息推送。
[0027]在第二方面的第一种可能的实施方式中,所述检测模块,还用于,通过预定函数检测所述客户端是否兼容网络套接字Websocket协议,其中,所述预定函数是所述Websocket协议所提供的函数。
[0028]在第二种可能的实施方式中,所述第二推送模块,包括:
[0029]第一接收单元,用于接收所述客户端发送的第i轮询请求;
[0030]连接保持单元,用于在不存在待推送的消息时,忽略所述第一接受单元接收的所述第i轮询请求且保持与所述客户端之间的网络连接;
[0031]第二接收单元,用于接收所述客户端发送的第i+Ι轮询请求;所述第i+Ι轮询请求是所述网络连接超时或断开时所述客户端重新发送的轮询请求,其中i为正整数。
[0032]在第三种可能的实施方式中,所述第二推送模块,还包括:
[0033]消息发送单元,用于所述第一接收单元接收所述客户端发送的第i轮询请求之后,在存在所述待推送的消息时,向所述客户端发送所述待推送的消息。
[0034]结合第二方面、第二方面的第一种可能的实施方式、第二方面的第二种可能的实施方式或者第二方面的第三种可能的实施方式,在第四种可能的实施方式中,所述第一推送模块,包括:
[0035]检测单元,用于检测与所述客户端之间的网络连接在预设时间内的中断次数是否超过预设阈值;
[0036]切换单元,用于在所述检测单元检测结果为所述网络连接在预设时间内的中断次数超过所述预设阈值时,切换至第一推送模块。
[0037]本发明实施例提供的技术方案带来的有益效果是:
[0038]通过检测客户端是否兼容网络套接字Websocket协议;通过检测客户端是否兼容Websocket协议;若客户端兼容Websocket协议,则基于Websocket协议进行消息推送;若客户端不兼容Websocket协议,则基于长轮询方式进行消息推送,使得客户端不必频繁地向服务器发出资源请求,就可以保持客户端和服务器端的同步,解决了当客户端以频繁请求的方式来保持客户端和服务器之间的同步时,占用大量服务器资源的问题,达到了根据客户端的实际情况选择使用更为合理的消息推送方式,降低服务器端CPU的利用率的效果Ο
[0039]此外,本发明实施例提供的消息推送方法,在基于Websocket协议进行消息推送时,通过检测与客户端之间的网络连接在预设时间内的中断次数是否超过预设阈值;若超过预设阈值,则基于长轮询方式进行消息推送,使得在客户端和服务器之间的网络连接环境较差时,客户端仍可以在尽量短的时间内接收到服务器的推送消息,达到了在客户端和服务器之间的网络连接环境较差时,提高客户端接收服务器的推送消息的实时性的效果。
[0040]进一步地,本发明实施例提供的消息推送方法,在基于长轮询方式进行消息推送时,客户端发送第i轮询请求后,通过服务器检测是否存在待推送的消息;在不存在待推送的消息时,忽略第i轮询请求且保持与客户端之间的网络连接;在存在待推送的消息时,向客户端发送待推送的消息;接收客户端发送的第i+Ι轮询请求,使得服务器在基于长轮询方式进行消息推送时,若服务器中没有待推送的消息,则不向客户端推送消息,解决了基于轮询方式进行消息推送时,若服务器中没有待推送的消息,重复向客户端发送旧的待推送消息的问题,达到了减少网络宽带的利用率,提高消息推送的准确性的效果。
【附图说明】
[0041]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0042]图1是根据一个示例性实施例示出的一种消息推送方法流程图;
[0043]图2是根据一个示例性实施例示出的基于Websocket协议进行消息推送时网络连接建立过程的交互图;
[0044]图3是根据另一个示例性实施例示出的一种消息推送方法流程图;
[0045]图4是根据一个示例性实施例示出的一种消息推送装置的框图;
[0046]图5是根据另一个示例性实施例示出的一种消息推送装置的框图。
【具体实施方式】
[0047]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0048]HTTP (HyperText Transfer Protocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议。HTTP协议是一种单向的网络协议。在建立连接后,只有当客户端向服务器发出资源请求后,服务器才能返回相应的数据。而服务器不
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1