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

文档序号:9551225阅读:来源:国知局
,推送服务器及时更新缓存队列信息,当推送服务器成功的将消息从缓存队列中取出发送到目的服务器后,推送服务器也及时的更新缓存队列信息,另外,当缓存队列中存储时间超过存储阈值的消息被清除时,推送服务器也实时的更新缓存队列信息。具体的,在本发明的一些应用场景中,缓存队列信息可以为缓存队列的队列长度,在缓存队列中每压入一个消息,缓存队列的队列长度就会增加,当缓存队列中每删除一个消息,缓存队列的队列长度就会减少,缓存队列的队列长度可以用推送服务器中待发送的消息数量来表征,在本发明的另一些应用场景中,缓存队列信息还可以指的是缓存队列的属性参数,例如可以是缓存队列所属推送服务器发送消息采用的协议格式、帧字段的结构特征等,缓存队列信息还可以指的是缓存队列中保存消息的特定属性,例如消息的标识号的优先级排序等,具体可以结合应用场景来对缓存队列信息进行具体赋值。
[0052]在本发明的一些实施例中,步骤102终端根据多个推送服务器各自对应的缓存队列信息从多个推送服务器中确定出第一推送服务器,具体可以包括如下步骤:
[0053]A1、终端接收多个推送服务器按照上报周期定时各自上报的缓存队列信息;
[0054]A2、终端根据定时各自上报的缓存队列信息从多个推送服务器中确定出第一推送服务器。
[0055]其中,步骤A1中终端和各个推送服务器建立有连接,终端连接的多个推送服务器可以按照预先设定的上报周期定时的向终端上报自己的缓存队列信息,终端直接从各个推送服务器接收到各个推送服务器分别对应的缓存队列信息,终端对接收到的各个推送服务器分别对应的缓存队列信息进行解析,从而可以判断出各个推送服务器的网络拥塞情况。步骤A2终端从定时各自上报的缓存队列信息中判断出各个推送服务器的网络拥塞情况,基于网络拥塞情况选择网络通畅的推送服务器作为第一推送服务器。
[0056]在本发明的另一些实施例中,步骤102终端根据多个推送服务器各自对应的缓存队列信息从多个推送服务器中确定出第一推送服务器,具体可以包括如下步骤:
[0057]B1、终端接收数据统计服务器发送的多个推送服务器各自对应的缓存队列信息,数据统计服务器定时接收多个推送服务器按照上报周期各自上报的缓存队列信息;
[0058]B2、终端根据数据统计服务器发送的多个推送服务器的缓存队列信息从多个推送服务器中确定出第一推送服务器。
[0059]其中,步骤B1中终端和数据统计服务器建立有连接,数据统计服务器连接的多个推送服务器可以按照预先设定的上报周期定时的向数据统计服务器上报自己的缓存队列信息,数据统计服务器接收到多个缓存队列信息之后,数据统计服务器可以定时的将接收到的多个缓存队列信息发送给终端,终端通过数据统计服务器从各个推送服务器接收到各个推送服务器分别对应的缓存队列信息,终端对接收到的各个推送服务器分别对应的缓存队列信息进行解析,从而可以判断出各个推送服务器的网络拥塞情况,在终端和推送服务器之间还设置有数据统计服务器,数据统计服务器用于实现定时接收各个推送服务器按照上报周期上报的缓存队列信息,以减轻终端直接接收各个推送服务器发送的缓存队列信息的负荷,有利于终端的节能和休眠,步骤B2终端从数据统计服务器定时发送的缓存队列信息中判断出各个推送服务器的网络拥塞情况,基于网络拥塞情况选择网络通畅的推送服务器作为第一推送服务器。
[0060]在本发明的另一些实施例中,步骤102终端根据多个推送服务器各自对应的缓存队列信息从多个推送服务器中确定出第一推送服务器,具体可以包括如下步骤:
[0061]终端根据多个推送服务器各自上报的缓存队列的队列长度从多个推送服务器中确定队列长度最短的推送服务器为第一推送服务器。
[0062]也就是说,缓存队列信息具体可以指的是推送服务器的队列长度,即推送服务器需要定时的按照上报周期上报自己的队列长度,其中,队列长度可以用于表示各个推送服务器中待发送的消息数量,若推送服务器的队列长度越长,该推送服务器的待处理消息的数量越多,该推送服务器的负荷越大,该推送服务器和目的服务器之间的网络通道就越拥塞,相反的,若推送服务器的队列长度越短,该推送服务器的待处理消息的数量越少,该推送服务器的负荷越小,该推送服务器和目的服务器之间的网络通道就越通畅,通常为了保证消息的及时性和可靠性,终端可以选择队列长度越短的推送服务器作为第一推送服务器。终端通过各个推送服务器对应的队列长度获知各个推送服务器中待发送的消息数量,从而可以选择一个待发送消息数量最少的推送服务器作为用于发送消息的第一推送服务器。
[0063]需要说明的是,在本发明实施例中,“第一推送服务器”用于特指终端从多个推送服务器中选择出的用于发送需要推送的消息的特定推送服务器,“第一推送服务器”并不是指的某个固定不变的推送服务器,而是用于发送步骤101中终端获取到的消息的推送服务器,由于终端为选择第一推送服务器是基于各个推送服务器对应的缓存队列信息进行的,而根据前述内容的描述可知,各个推送服务器对应的缓存队列信息可能实时变化的,则针对于终端获取到的不同消息缓存队列信息可能也是不同的,终端基于这个可能实时变化的缓存队列信息确定出的第一推送服务器也可能是不同的推送服务器。
[0064]在本发明的另一些实施例中,步骤102终端根据多个推送服务器各自对应的缓存队列信息从多个推送服务器中确定出第一推送服务器,具体可以包括如下步骤:
[0065]Cl、终端分别判断每个推送服务器的缓存队列的队列长度是否大于预置的第一门限值;
[0066]C2、终端从多个推送服务器中除队列长度大于第一门限值的推送服务器以外的其它推送服务器中随机挑选一个推送服务器作为第一推送服务器。
[0067]其中,终端可以设置第一门限值,终端在获取到各个推送服务器的缓存队列的队列长度之后,终端将每个推送服务器的缓存队列的队列长度与设置的第一门限值进行比较,从所有推送服务器中挑选出队列长度大于第一门限值的推送服务器,然后从剩下的推送服务器中随机的挑选一个推送服务器作为第一推送服务器,也就是说,终端可以从网络连接较为通畅的多个推送服务器中随机的挑选推送服务器用于发送消息,其中队列长度小于或者等于第一门限值的推送服务器和目的服务器之间的网络连接较为通畅,终端可以进行任意指定网络连接通畅的推送服务器作为第一推送服务器。
[0068]在本发明的一些实施例中,前述步骤101终端获取需要推送的消息,具体可以包括:终端获取所有需要推送的消息。在这种应用场景中,步骤102终端根据多个推送服务器各自对应的缓存队列信息从多个推送服务器中确定出第一推送服务器,具体包括如下步骤:
[0069]终端根据多个推送服务器各自对应的缓存队列信息,按照所有需要推送的消息的优先级高低依次为每个需要推送的消息确定出第一推送服务器。
[0070]也就是说,终端获取到所有需要推送的消息指的是终端通过一次获取,得到了多个消息,所有需要推送的消息具体可以指的是来自于终端上装载的同一个应用的多个消息,这些所有需要推送的消息都需要被推送到同一个目的服务器,若终端一次性获取到了多个需要推送的消息,终端可以按照所有消息的优先级高低依次为每个消息确定出第一推送服务器,由于终端是根据缓存队列信息确定出第一推送服务器,可能为优先级不同的各个消息确定出的是不同的第一推送服务器。
[0071]在本发明的一些实施例中,前述步骤101终端获取需要推送的消息,具体可以包括:终端获取所有需要推送的消息。在这种应用场景中,步骤102终端根据多个推送服务器各自对应的缓存队列信息从多个推送服务器中确定出第一推送服务器,具体包括如下步骤:
[0072]终端根据多个推送服务器各自对应的缓存队列信息,按照所有需要推送的消息的消息类型为每个需要推送的消息确定出第一推送服务器。
[0073]也就是说,终端获取到所有需要推送的消息指的是终端通过一次获取,得到了多个消息,所有需要推送的消息具体可以指的是来自于终端上装载的同一个应用的多个消息,这些所有需要推送的消息都需要被推送到同一个目的服务器,若终端一次性获取到了多个需要推送的消息,终端可以按照所有消息的消息类型为每个消息确定出第一推送服务器,由于终端是根据缓存队列信息确定出第一推送服务器,可能为消息类型不同的各个消息确定出的是不同的第一推送服务器,其中消息的消息类型可以指的是信令,也可以是通知,还可以具体指的是多媒体数据,基于消息类型与推送服务器的匹配关系可以为各个消息确定出用于发送消息的第一推送服务器。
[0074]103、终端将需要推送的消息发送给第一推送服务器,由第一推送服务器将需要推送的消息推送给目的服务器。
[0075]在本发明实施例中,通过步骤102终端确定出了哪个推送服务器作为第一推送服务器,在确定出第一推送服务器之后,终端可以将需要推送的消息发送给第一推送服务器,推送服务器与目的服务器之间建立有通信连接,第一推送服务器可以将从终端接收到的消息继续向目的服务器推送,以实现终端和目的服务器之间的通信。在本发明的一些应用场景中,目的服务器可以为苹果推送通知服务(Apple Push Notificat1n Service,APNS)服务器。
[0076]在本发明的一些实施例中,前述步骤101终端获取需要推送的消息,具体可以包括:终端获取所有需要推送的消息。在这种应用场景中,步骤102终端根据多个推送服务器各自对应的缓存队列信息从多个推送服务器中确定出第一推送服务器,具体包括如下步骤:终端根据多个推送服务器各自对应的缓存队列信息,按照所有需要推送的消息的消息类型为每个需要推送的消息确定出第一推送服务器。步骤103终端将所述需要推送的消息发送给第一推送服务器,具体可以包括如下步骤:
[0077]终端按照消息优先级高低依次向第一推送服务器发送需要推送的消息。
[0078]也就是说,终端获取到所有需要推送的消息指的是终端通过一次获取,得到了多个消息,所有需要推送的消息具体可以指的是来自于终端上装载的同一个应用的多个消息,这些所有需要推送的消息都需要被推送到同一个目的服务器,若终端一次性获取到了多个需要推送的消息,终端可以按照优先级高低依次向第一推送服务器发送需要推送的消肩、Ο
[0079]在这种应用场景下,终端获取所有需要推送的消息之后,本发明实施例提供的消息的推送方法还可以包括如下步骤:
[0080]终端将获取到的所有需要推送的消息存储到终端的数据存储器中。
[0081]在这种应用场景下,终端按照消息优先级高低依次向第一推送服务器发送需要推送的消息,具体可以包括如下步骤:
[0082]终端从数据存储器中按照消息优先级高低依次取出各个需要推送的消息;
[0083]终端将依次取出的各个需要推送的消息发送给第一推送服务器。
[0084]也就是说,本发明实施例中,终端
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1