一种消息的推送方法和终端以及推送服务器的制造方法_3

文档序号:9551225阅读:来源:国知局
中还可以设置有数据存储器,用于暂时存储终端获取到的多个消息,以防止消息的丢失,若终端获取到消息之后存储到了数据存储器中,则终端需要先从数据存储器中取出需要发送的数据再发送给第一推送服务器。
[0085]通过以上对本发明实施例的描述可知,终端首先获取需要推送的消息,然后终端根据多个推送服务器各自对应的缓存队列信息从多个推送服务器中确定出第一推送服务器,其中,第一推送服务器为终端确定的用于发送需要推送的消息的推送服务器,终端将需要推送的消息发送给确定出的第一推送服务器,由该第一推送服务器将需要推送的消息推送给目的服务器。由于终端可以根据推送服务器的缓存队列信息从多个推送服务器中选择用于发送需要推送的消息的推送服务器,故终端可以通过各个推送服务器的缓存队列信息获知各个推送服务器与外网连接的拥塞程度,终端通过缓存队列信息可以确定出能够发送消息的第一推送服务器,从而可以保证通过该第一推送服务器发送出去的消息能够被第一推送服务器顺利的推送给目的服务器,避免消息推送不出去而滞留在本终端的缓冲区里面,提高消息的推送效率。
[0086]以上实施例从终端的角度对消息的推送方法进行了详细说明,接下来从推送服务器的角度来描述本发明实施例提供的消息的推送方法,其中,以本发明实施例中终端确定出的推送服务器的角度进行具体说明,本发明消息的推送方法的一个实施例,具体可以应用于第一推送服务器中,该方法可以包括如下步骤:第一推送服务器接收终端发送的需要推送的消息,第一推送服务器为终端从多个推送服务器中确定出用于发送需要推送的消息的推送服务器;第一推送服务器将需要推送的消息压入缓存队列中;第一推送服务器将从缓存队列中取出的消息发送给目的服务器。
[0087]请参阅图2所示,本发明一个实施例提供的一种消息的推送方法,可以包括如下步骤:
[0088]201、第一推送服务器接收终端发送的需要推送的消息。
[0089]其中,第一推送服务器为终端从多个推送服务器中确定出用于发送需要推送的消息的推送服务器。
[0090]在本发明实施例中,第一推送服务器从终端接收到需要推送的消息,其中第一推送服务器接收到的消息可以为信令,也可以为通知,还可以具体指的是多媒体数据,具体可以按照终端中加载的应用来决定,例如,终端上装载有QQ应用,用户使用终端可以获取到QQ消息,包括好友消息,群消息,讨论组消息等。第一推送服务器将接收到的消息推送到目的服务器,由目的服务器将消息再发送到目的终端,从而可以实现终端和目的终端的通信。
[0091]在本发明实施例中,终端确定出了哪个推送服务器作为第一推送服务器,在确定出第一推送服务器之后,终端可以将需要推送的消息发送给第一推送服务器,第一推送服务器与终端之间建立有通信连接,第一推送服务器可以将从终端接收到的消息。
[0092]在本发明的一些应用场景中,终端设置的多个推送服务器分别为来自不同运营商的服务器,第一推送服务器具体可以指的是来自某个运营商的推送服务器,例如可以使来自电信或联通或移动的推送服务器。在这种场景下,终端可以使用多个不同运营商提供的消息推送服务,终端可以根据来自不同运营商的推送服务器对应的缓存队列信息确定使用哪个运营商的推送服务器来推送消息,由于各个运营商出国带宽的不稳定,经常会出现一整个机房的网络连接拥塞的问题,本发明实施例中终端可以通过各个运营商的缓存队列信息获取到哪个运营商的推送服务器出现了拥塞,以及各个运营商的推送服务器的具体拥塞程度,从而可以选择不拥塞或拥塞程度较轻的推送服务器作为第一推送服务器,用于推送消息到目的服务器。在现有技术中,当终端连接拥塞时终端产生的消息推送不出去或者推送的速率很低,导致大量消息推送不出去而滞留在本终端的缓冲区里面,通常会耗费较长的时间才能将消息推送出去,导致消息的推送效率较低。本发明实施例中,终端获取到需要推送的消息之后,终端并不是直接发送消息,而是从终端设置的多个推送服务器中根据各个推送服务器对应的缓存队列信息确定出各个推送服务器是否产生拥塞以及拥塞的程度,终端可以从不拥塞或拥塞程度较轻的推送服务器中确定出第一推送服务器,以此可以避免消息发送失败或者大量拥挤在本终端缓存区中的问题。
[0093]在本发明的一些实施例中,本发明实施例提供的消息的推送方法还可以包括如下步骤:
[0094]第一推送服务器按照上报周期定时向终端上报自己的缓存队列信息。
[0095]其中,终端和各个推送服务器建立有连接,终端连接的多个推送服务器可以按照预先设定的上报周期定时的向终端上报自己的缓存队列信息,终端直接从各个推送服务器接收到各个推送服务器分别对应的缓存队列信息,终端对接收到的各个推送服务器分别对应的缓存队列信息进行解析,从而可以判断出各个推送服务器的网络拥塞情况。
[0096]在本发明的另一些实施例中,本发明实施例提供的消息的推送方法还可以包括如下步骤:
[0097]第一推送服务器按照上报周期定时向数据统计服务器上报自己的缓存队列信息,由数据统计服务器将接收到的缓存队列信息发送给终端。
[0098]其中,终端和数据统计服务器建立有连接,数据统计服务器连接的多个推送服务器可以按照预先设定的上报周期定时的向数据统计服务器上报自己的缓存队列信息,数据统计服务器接收到多个缓存队列信息之后,数据统计服务器可以定时的将接收到的多个缓存队列信息发送给终端,终端通过数据统计服务器从各个推送服务器接收到各个推送服务器分别对应的缓存队列信息,终端对接收到的各个推送服务器分别对应的缓存队列信息进行解析,从而可以判断出各个推送服务器的网络拥塞情况,在终端和推送服务器之间还设置有数据统计服务器,数据统计服务器用于实现定时接收各个推送服务器按照上报周期上报的缓存队列信息,以减轻终端直接接收各个推送服务器发送的缓存队列信息的负荷,有利于终端的节能和休眠,终端从数据统计服务器定时发送的缓存队列信息中判断出各个推送服务器的网络拥塞情况,基于网络拥塞情况选择网络通畅的推送服务器作为第一推送服务器。
[0099]202、第一推送服务器将需要推送的消息压入缓存队列中。
[0100]在本发明实施例中,第一推送服务器从终端接收到需要推送的消息之后,第一推送服务器将需要推送的消息压入到缓存队列中,此时终端发送的需要推送的消息作为第一推送服务器中待发送的消息保存到缓存队列中。
[0101]在本发明实施例中,每个推送服务器都对应有一个缓存队列,缓存队列中保存的是推送服务器需要发送的消息,推送服务器实时维护自己的缓存队列,当有新的消息压入到缓存队列时,推送服务器及时更新缓存队列信息,当推送服务器成功的将消息从缓存队列中取出发送到目的服务器后,推送服务器也及时的更新缓存队列信息。具体的,在本发明的一些应用场景中,缓存队列信息可以为缓存队列的队列长度,缓存队列信息具体为第一推送服务器的缓存队列的队列长度。在缓存队列中每压入一个消息,缓存队列的队列长度就会增加,当缓存队列中每删除一个消息,缓存队列的队列长度就会减少,缓存队列的队列长度可以用推送服务器中待发送的消息数量来表征,在本发明的另一些应用场景中,缓存队列信息还可以指的是缓存队列的属性参数,例如可以是缓存队列所属推送服务器发送消息采用的协议格式、帧字段的结构特征等,缓存队列信息还可以指的是缓存队列中保存消息的特定属性,例如消息的标识号的优先级排序等,具体可以结合应用场景来对缓存队列信息进行具体赋值。
[0102]203、第一推送服务器将从缓存队列中取出的消息发送给目的服务器。
[0103]在本发明实施例中,通过步骤202第一推送服务器将终端发送的需要推送的消息压入到了缓存队列中,第一推送服务器与目的服务器之间建立有通信连接,第一推送服务器可以从缓存队列中取出消息,将从终端接收到的消息继续向目的服务器推送,以实现终端和目的服务器之间的通信。在本发明的一些应用场景中,目的服务器可以为苹果推送通知服务APNS服务器。
[0104]在本发明的一些实施例中,步骤203第一推送服务器将从缓存队列中取出的消息发送给目的服务器之后,本发明实施例提供的消息的推送方法可以还包括如下步骤:
[0105]第一推送服务器将缓存队列中存储时间超过存储阈值的消息删除。
[0106]也就是说,当缓存队列中存储时间超过存储阈值的消息被清除时,推送服务器也实时的更新缓存队列信息,以保证推送服务器发送消息的效率,对于超时的无效消息进行及时删除,可以使缓存队列保持正常的运转。
[0107]通过以上对本发明实施例的描述可知,第一推送服务器为终端确定的用于发送需要推送的消息的推送服务器,第一推送服务器从终端接收到需要推送的消息,由该第一推送服务器将需要推送的消息推送给目的服务器。由于终端可以根据推送服务器的缓存队列信息从多个推送服务器中选择用于发送需要推送的消息的推送服务器,故终端可以通过各个推送服务器的缓存队列信息获知各个推送服务器与外网连接的拥塞程度,终端通过缓存队列信息可以确定出能够发送消息的第一推送服务器,从而可以保证通过该第一推送服务器发送出去的消息能够被第一推送服务器顺利的推送给目的服务器,避免消息推送不出去而滞留在本终端的缓冲区里面,提高消息的推送效率。
[0108]为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。请参阅如图3所示,图3为本发明实施例提供的消息的推送方法应用的一种场景示意图,以终端设置有三个推送服务器为例进行说明,分别是推送服务器1、推送服务器2、推送服务器3,这3个推送服务器分别来自不同运营商的服务器,其中,推送服务器1为来自联通机房的服务器,推送服务器2为来自移动机房的服务器,推送服务器3为来自电信机房的服务器,推送服务器1、推送服务器2、推送服务器3分别通过外网连接到APNS服务器。
[0109]具体执行过程如下:
[0110]S01、终端(client)获取到需要发送的消息,并根据推送服务器1、推送服务器2、推送服务器3各自对应的缓存队列大小确定出第一推送服务器,终端可以将需要推送的消息发送到后台的第一推送服务器。
[0111]S02、第一推送服务器将接收到的消息压入到缓存队列中,若终端确定出的第一推送服务器为推送服务器1,则推送服务器1会接收到终端发送的消息,并压入到自己的缓存队列中,这样终端就可以通过联通机房的推送服务器将消息发送到APNS服务器。
[0112]S03、第一推送服务器再从缓存队列里面取出消息推送到APNS服务器。
[0113]S04、每个推送服务器定时向数据统计服务器上报缓存队列的大小,从而终端可以通过数据统计服务器获取到各个推送服务器的缓存队列大小。
[0114]当外网产生拥塞时,推送服务器向APNS服务器推送消息的动作会阻塞,这个时候后台的推送服务器的缓存队列就会逐渐变大。终端根据后台推送服务器上报的缓存队列大
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1