CN108810116B - 消息处理方法及相关产品 - Google Patents
消息处理方法及相关产品 Download PDFInfo
- Publication number
- CN108810116B CN108810116B CN201810533513.7A CN201810533513A CN108810116B CN 108810116 B CN108810116 B CN 108810116B CN 201810533513 A CN201810533513 A CN 201810533513A CN 108810116 B CN108810116 B CN 108810116B
- Authority
- CN
- China
- Prior art keywords
- message
- mobile terminal
- sequence number
- maximum
- messages
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
Abstract
本申请实施例公开了一种消息处理方法及相关产品。方法包括:向所述移动终端发送新消息通知;接收来自移动终端的消息拉取请求,消息拉取请求包括移动终端保存的第一最大序列号,第一最大序列号为移动终端接收到的历史消息的序列号中的最大值,序列号为推送服务器针对移动终端的消息进行排序后的消息的序号;根据第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值;向移动终端发送目标消息。本申请实施例有利于提高消息推送的可靠性。
Description
技术领域
本申请涉及移动终端技术领域,具体涉及消息处理方法及相关产品。
背景技术
消息推送技术,也称为PUSH(推送)技术,是一种基于客户端服务器通讯机制,由服务器主动将消息发往客户端的技术,是当前移动互联网上比较热门的技术之一。一般的,服务提供商(Service Provider,SP)服务器需要对指定客户端PUSH消息时,SP服务器需指明接收消息的客户端的身份信息,该身份信息包括客户端标识deviceID,然后由PUSH服务器(推送服务器)依据该deviceID,将需要推送的消息内容转发至SP服务器指明的接收消息的客户端,实现对指定客户端PUSH消息。
上述进行消息推送的过程中,消息推送方与消息接收方之间如何保证有序、可靠的消息传输,是本领域的热门问题。
发明内容
本申请实施例提供了消息处理方法及相关产品,以期提高消息推送的可靠性。
第一方面,本申请实施例提供一种消息处理方法,应用于推送服务器,所述推送服务器用于向移动终端发送消息,所述消息的序列号为所述推送服务器针对所述移动终端的消息进行排序后的消息的序号;所述方法包括:
向所述移动终端发送新消息通知;
接收来自所述移动终端的消息拉取请求,所述消息拉取请求包括所述移动终端保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
根据所述第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值;
向所述移动终端发送所述目标消息。
第二方面,本申请实施例提供一种消息处理方法,应用于移动终端,所述方法包括:
接收来自所述推送服务器的新消息通知;
获取保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
向所述推送服务器发送消息拉取请求,所述消息拉取请求包括所述第一最大序列号;
接收来自所述推送服务器的目标消息,所述目标消息是所述推送服务器根据所述第一最大序列号和预存的第二最大序列号确定的所述移动终端未接收到的消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值。
第三方面,本申请实施例提供一种推送服务器,包括发送单元、接收单元和确定单元,其中,
所述发送单元,用于向所述移动终端发送新消息通知;
所述接收单元,用于接收来自所述移动终端的消息拉取请求,所述消息拉取请求包括所述移动终端保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
所述确定单元,用于根据所述第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值;
所述发送单元,还用于向所述移动终端发送所述目标消息。
第四方面,本申请实施例提供了一种移动终端,包括接收单元、获取单元、发送单元,其中,
所述接收单元,用于接收来自所述推送服务器的新消息通知;
所述获取单元,用于获取保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
所述发送单元,用于向所述推送服务器发送消息拉取请求,所述消息拉取请求包括所述第一最大序列号;
所述接收单元,还用于接收来自所述推送服务器的目标消息,所述目标消息是所述推送服务器根据所述第一最大序列号和预存的第二最大序列号确定的所述移动终端未接收到的消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值。
第五方面,本实施例提供一种消息处理系统,包括如本申请实施例第三方面所述的推送服务器和第四方面所述的移动终端。
第六方面,本申请实施例提供一种推送服务器,包括处理器、存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行本申请实施例第一方面任一方法中的步骤的指令。
第七方面,本申请实施例提供一种移动终端,包括处理器、存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行本申请实施例第二方面任一方法中的步骤的指令。
第八方面,本申请实施例提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如本申请实施例第一方面或第二方面任一方法中所描述的部分或全部步骤,所述计算机包括移动终端。
可以看出,本申请实施例中,推送服务器向移动终端推送消息时,推送服务器首先向所述移动终端发送新消息通知,移动终端接收该新消息通知,获取保存的第一最大序列号,并向推送服务器发送携带该第一最大序列号的消息拉取请求,推送服务器接收该消息拉取请求,根据第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,并向移动终端发送目标消息,移动终端接收该目标消息。由于第一最大序列号为移动终端接收到的历史消息的序列号中的最大值,第二最大序列号为推送服务器所检测到的针对移动终端的消息的序列号中的最大值,且序列号为推送服务器针对移动终端的消息进行排序后的消息的序号,故而推送服务器中针对移动终端的所有消息是经过排序并确定序列号的,且已经推送给移动终端的消息可以由第一最大序列号直接指示,即需要推送给移动终端的消息(目标消息)可以由第一最大序列号和第二最大序列号准确确定,如此能够避免推送服务器重复推送消息或漏推送消息,提高消息推送的可靠性。
附图说明
下面将对本申请实施例所涉及到的附图作简单地介绍。
图1A是本申请实施例提供的一种消息处理系统的系统架构示意图;
图1B是本申请实施例提供的一种通知栏显示界面的示例图;
图2A是本申请实施例提供的一种消息处理方法的流程示意图;
图2B是本申请实施例提供的一种并发消息场景下的消息推送流程示例图;
图2C是本申请实施例提供的一种另一种并发消息场景下的消息推送流程示例图;
图3是本申请实施例公开的另一种消息处理方法的流程示意图;
图4是本申请实施例公开的另一种消息处理方法的流程示意图;
图5是本申请实施例公开的一种推送服务器的结构示意图;
图6是本申请实施例公开的一种移动终端的结构示意图;
图7是本申请实施例公开的一种推送服务器的功能单元组成框图;
图8是本申请实施例公开的一种移动终端的功能单元组成框图;
图9是本申请实施例公开的一种智能手机的结构示意图;
图10是本申请实施例公开的一种消息处理系统的系统架构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例所涉及到的移动终端可以包括各种具有无线通信功能的手持设备(如智能手机)、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(User Equipment,UE),移动台(Mobile Station,MS),终端设备(terminal device)等等。为方便描述,上面提到的设备统称为移动终端。
如图1A所示,图1A是本申请实施例提供的一种消息处理系统的系统架构示意图。该系统包括推送服务器和移动终端,该推送服务器可以通过通信网络(如各类无线移动通信网络)与移动终端建立通信连接,其中,推送服务器运行有消息推送主软件,用于接收来自服务提供商服务器的消息和推送该消息(如新版本应用程序的软件更新完成的通知消息、视频软件新上架了热门电视剧的通知消息等,此处不做唯一限定),移动终端运行有消息推送从软件,用于提供如图1B所示的通知栏显示界面供用户查阅消息、以及提供点击消息时链接到该消息关联的应用程序的功能,上述消息推送主软件和消息推送从软件的具体名称和表现形式本申请实施例不做唯一限定。
下面结合附图对本申请实施例进行介绍。
请参阅图2A,图2A是本申请实施例提供了一种消息处理方法的流程示意图,应用于推送服务器,所述推送服务器用于向移动终端发送消息,所述消息的序列号为所述推送服务器针对所述移动终端的消息进行排序后的消息的序号;本消息处理方法包括:
步骤201,所述推送服务器向所述移动终端发送新消息通知;
其中,所述新消息通知用于向移动终端指示服务器检测到新的关联消息,该关联消息可以是与移动终端安装的应用程序相关的各类消息,该各类消息例如可以是版本更新消息、内容更新消息、广告消息等,此处不做唯一限定。
步骤202,所述推送服务器接收来自所述移动终端的消息拉取请求,所述消息拉取请求包括所述移动终端保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
其中,推送服务器针对移动终端的每个消息都会按照该消息的获取时序分配一个序列号。
步骤203,所述推送服务器根据所述第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值;
其中,所述第一最大序列号和所述第二最大序列号有亿量级的计数空间(从0到2147483647),可以按照从小到大的顺序连续分配,且该第一第二最大序列号的初始值可以是0。
其中,所述目标消息可以包括一个或多个消息。
步骤204,所述推送服务器向所述移动终端发送所述目标消息。
可以看出,本申请实施例中,推送服务器向移动终端推送消息时,推送服务器首先向所述移动终端发送新消息通知,移动终端接收该新消息通知,获取保存的第一最大序列号,并向推送服务器发送携带该第一最大序列号的消息拉取请求,推送服务器接收该消息拉取请求,根据第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,并向移动终端发送目标消息,移动终端接收该目标消息。由于第一最大序列号为移动终端接收到的历史消息的序列号中的最大值,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值,且序列号为推送服务器针对移动终端的消息进行排序后的消息的序号,故而推送服务器中针对移动终端的所有消息是经过排序并确定序列号的,且已经推送给移动终端的消息可以由第一最大序列号直接指示,即需要推送给移动终端的消息(目标消息)可以由第一最大序列号和第二最大序列号准确确定,如此能够避免推送服务器重复推送消息或漏推送消息,提高消息推送的可靠性。
在一个可能的示例中,所述推送服务器根据所述第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,包括:所述推送服务器确定所述第一最大序列号和预存的第二最大序列号的差值;根据所述差值和所述第一最大序列号确定所述移动终端未接收到的至少一个新消息为所述目标消息。
其中,推送服务器可以根据第二最大序列号减去第一最大序列号的差值(正整数情况下)确定待推送消息的数量和每个待推送消息的序列号,如第二最大序列号为10,第一最大序列号为5,则确定待推送消息的数量为5,待推送消息的序列号分别为6、7、8、9、10。
此外,推送服务器单次推送的消息的最大数量可以预先约定好,具体约定方式不做唯一限定,如由开发人员设置,或者根据移动终端的优先级进行差异化设置,如第一移动终端的优先级高于第二移动终端的优先级,则第一移动终端单次可被推送的消息的最大数量A1可以大于该第二移动终端单次可被推送的消息的最大数量,差异化控制有利于系统均衡和提供差异化服务。
可见,本示例中,推送服务器根据第一最大序列号和第二最大序列号能够准确确定本端还未推送给移动终端的消息的数量和序列号,避免重复推送或者漏推送消息给移动终端,提高消息推送的准确度。
在一个可能的示例中,所述推送服务器向所述移动终端发送所述目标消息,包括:所述推送服务器向所述移动终端发送数据包,所述数据包包括所述目标消息和所述目标消息的序列号;所述序列号用于所述移动终端在检测到所述第一最大序列号小于所述目标消息的序列号时,保存所述目标消息,并根据所述目标消息的序列号更新所述第一最大序列号;或者,所述序列号用于所述移动终端在检测到所述第一最大序列号大于或等于所述目标消息的序列号时,丢弃所述目标消息。
其中,在所述目标消息仅为单个消息时,移动终端在接收到所述数据包后,检测到第一最大序列号小于该单个消息的序列号时,保存该单个消息,检测到第一最大序列号大于或等于对应的序列号时,丢弃该目标消息。
在所述目标消息仅为多个消息时,移动终端在接收到所述数据包后,很对该多个消息中的每个消息,执行以下操作:检测到当前的第一最大序列号小于该当前处理的消息的序列号时,保存该单个消息,检测到当前的第一最大序列号大于或等于当前处理的消息的序列号时,丢弃该目标消息。
可见,本示例中,针对弱网络环境下,移动终端发送的消息拉取请求丢失、导致推送服务器重复发送消息的情况,由于数据包携带目标消息的序列号,从而使得移动终端在接收到目标消息后,能够基于第一最大序列号与该目标消息的序列号的比对结果准确确定该目标消息是否为新消息,避免重复接收相同消息,有利于提高消息接收的准确度和传输效率。
在一个可能的示例中,所述推送服务器向所述移动终端发送新消息通知之前,所述方法还包括:所述推送服务器在目标时间窗内检测到针对所述移动终端的多个所述移动终端未接收到的新消息,排序所述多个所述移动终端未接收到的新消息,并确定每个所述移动终端未接收到的新消息的序列号,所述目标时间窗的时长与参考时长匹配,所述参考时长为所述推送服务器发送一个新消息通知和接收对应的消息拉取请求之间的平均间隔时长;建立所述多个所述移动终端未接收到的新消息与所述新消息通知之间的关联关系,所述目标消息包括所述多个所述移动终端未接收到的新消息;在所述目标时间窗之后的预设时段内检测到正在向所述移动终端发送参考消息,发送完成所述参考消息,或者,在所述预设时段内未检测到正在向所述移动终端发送消息。
其中,所述平均间隔时长可以是根据预存的多组历史记录确定的。
举例来说,如图2B所示,假设推送服务器在目标时间窗内无消息推送,且在该时间窗内检测到针对所述移动终端的3个所述移动终端未接收到的新消息,分别为消息A1、消息A2和消息A3,第二最大序列号为0,则推送服务器排序该3个新消息,确定A1序列号为1,A2序列号为2,A3序列号为3,更新第二最大序列号为3,并建立该3个新消息与第一新消息通知之间的关联关系,并向移动终端发送第一新消息通知,移动终端反馈第一消息拉取请求,同时段推送服务器检测到并发消息B1和消息B2,推送服务器基于第一最大序列号0和第二最大序列号3确定需要发送消息A1、消息A2和消息A3,在检测到消息A1、消息A2和消息A3发送完成后,向移动终端发送第二新消息通知,接收移动终端反馈的第二消息拉取请求,推送服务器检测到第一最大序列号3小于第二最大序列号5,发送B1和B2,移动终端接收后更新第一最大序列号为5。
又举例来说,如图2C所示,假设推送服务器在目标时间窗内正在推送参考消息,且在该时间窗内检测到针对所述移动终端的3个所述移动终端未接收到的新消息,分别为消息A1、消息A2和消息A3,第二最大序列号为0,则推送服务器排序该3个新消息,确定A1序列号为2,A2序列号为3,A3序列号为4,更新第二最大序列号为4,并建立该3个新消息与第一新消息通知之间的关联关系,在参考消息发送完成后,并向移动终端发送第一新消息通知,移动终端反馈第一消息拉取请求,同时段推送服务器检测到并发消息B1和消息B2,推送服务器基于第一最大序列号1和第二最大序列号4确定需要发送消息A1、消息A2和消息A3,在检测到消息A1、消息A2和消息A3发送完成后,向移动终端发送第二新消息通知,接收移动终端反馈的第二消息拉取请求,推送服务器检测到第一最大序列号4小于第二最大序列号6,发送B1和B2,移动终端接收后更新第一最大序列号为6。
可见,本示例中,针对并发消息场景,推送服务器在发送参考消息完成后再发送新消息通知,如此能够避免移动终端未及时接收到参考消息来更新第一最大序列号的情况下,接收到新消息通知将该未更新的第一最大序列号发送给推送服务器,导致推送服务器重复发送参考消息的情况发生,有利于提高消息推送的效率和准确度。
与所述图2A所示的实施例一致的,请参阅图3,图3是本申请实施例提供的一种消息处理方法的流程示意图,应用于移动终端,所述移动终端用于接收来自推送服务器的消息,所述消息的序列号为所述推送服务器针对所述移动终端的消息进行排序后的消息的序号。如图所示,本消息处理方法包括:
步骤301,所述移动终端接收来自所述推送服务器的新消息通知;
步骤302,所述移动终端获取保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
步骤303,所述移动终端向所述推送服务器发送消息拉取请求,所述消息拉取请求包括所述第一最大序列号;
步骤304,所述移动终端接收来自所述推送服务器的目标消息,所述目标消息是所述推送服务器根据所述第一最大序列号和预存的第二最大序列号确定的的所述移动终端未接收到的消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值。
可以看出,本申请实施例中,推送服务器向移动终端推送消息时,推送服务器首先向所述移动终端发送新消息通知,移动终端接收该新消息通知,获取保存的第一最大序列号,并向推送服务器发送携带该第一最大序列号的消息拉取请求,推送服务器接收该消息拉取请求,根据第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,并向移动终端发送目标消息,移动终端接收该目标消息。由于第一最大序列号为移动终端接收到的历史消息的序列号中的最大值,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值,且序列号为推送服务器针对移动终端的消息进行排序后的消息的序号,故而推送服务器中针对移动终端的所有消息是经过排序并确定序列号的,且已经推送给移动终端的消息可以由第一最大序列号直接指示,即需要推送给移动终端的消息(目标消息)可以由第一最大序列号和第二最大序列号准确确定,如此能够避免推送服务器重复推送消息或漏推送消息,提高消息推送的可靠性。
在一个可能的示例中,所述接收来自所述推送服务器的目标消息,包括:接收来自所述推送服务器的数据包,所述数据包包括所述目标消息和所述目标消息的序列号;在检测到所述第一最大序列号小于所述目标消息的序列号时,保存所述目标消息,并根据所述目标消息的序列号更新所述第一最大序列号;或者,在检测到所述第一最大序列号大于或等于所述目标消息的序列号时,丢弃所述目标消息。
其中,在所述目标消息仅为单个消息时,移动终端在接收到所述数据包后,检测到第一最大序列号小于该单个消息的序列号时,保存该单个消息,检测到第一最大序列号大于或等于对应的序列号时,丢弃该目标消息。
在所述目标消息仅为多个消息时,移动终端在接收到所述数据包后,很对该多个消息中的每个消息,执行以下操作:检测到当前的第一最大序列号小于该当前处理的消息的序列号时,保存该单个消息,检测到当前的第一最大序列号大于或等于当前处理的消息的序列号时,丢弃该目标消息。
可见,本示例中,针对弱网络环境下,移动终端发送的消息拉取请求丢失、导致推送服务器重复发送消息的情况,由于数据包携带目标消息的序列号,从而使得移动终端在接收到目标消息后,能够基于第一最大序列号与该目标消息的序列号的比对结果准确确定该目标消息是否为新消息,避免重复接收相同消息,有利于提高消息接收的准确度和传输效率。
在一个可能的示例中,所述目标消息包括所述推送服务器在目标时间窗内检测到的针对所述移动终端的多个所述移动终端未接收到的新消息,所述目标时间窗的时长与参考时长匹配,所述参考时长为所述推送服务器发送一个新消息通知和接收对应的消息拉取请求之间的平均间隔时长;
所述新消息通知是所述推送服务器在检测到针对所述移动终端的所述多个所述移动终端未接收到的新消息的情况下,执行预设操作之后而发送的;
所述预设操作包括:排序所述多个所述移动终端未接收到的新消息,确定每个所述移动终端未接收到的新消息的序列号,建立所述多个所述移动终端未接收到的新消息与所述新消息通知之间的关联关系,在所述目标时间窗之后的预设时段内检测到正在向所述移动终端发送参考消息,发送完成所述参考消息,或者,在所述预设时段内未检测到正在向所述移动终端发送消息。
可见,本示例中,针对并发消息场景,推送服务器在发送参考消息完成后再发送新消息通知,如此能够避免移动终端未及时接收到参考消息来更新第一最大序列号的情况下,接收到新消息通知将该未更新的第一最大序列号发送给推送服务器,导致推送服务器重复发送参考消息的情况发生,有利于提高消息推送的效率和准确度。
与所述图2A所示的实施例一致的,请参阅图4,图4是本申请实施例提供的一种消息处理方法的流程示意图,应用于移动终端和推送服务器,所述推送服务器用于向移动终端发送消息,所述消息的序列号为所述推送服务器针对所述移动终端的消息进行排序后的消息的序号;所述移动终端用于接收来自推送服务器的消息。如图所示,本消息处理方法包括:
步骤401,所述推送服务器向所述移动终端发送新消息通知;
步骤402,所述移动终端接收来自所述推送服务器的新消息通知;
步骤403,所述移动终端获取保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
步骤404,所述移动终端向所述推送服务器发送消息拉取请求,所述消息拉取请求包括所述第一最大序列号;
步骤405,所述推送服务器接收来自所述移动终端的消息拉取请求,所述消息拉取请求包括所述移动终端保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
步骤406,所述推送服务器根据所述第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值;
步骤407,所述推送服务器向所述移动终端发送所述目标消息。
步骤408,所述移动终端接收来自所述推送服务器的目标消息,所述目标消息是所述推送服务器根据所述第一最大序列号和预存的第二最大序列号确定的所述移动终端未接收到的消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值。
可以看出,本申请实施例中,推送服务器向移动终端推送消息时,推送服务器首先向所述移动终端发送新消息通知,移动终端接收该新消息通知,获取保存的第一最大序列号,并向推送服务器发送携带该第一最大序列号的消息拉取请求,推送服务器接收该消息拉取请求,根据第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,并向移动终端发送目标消息,移动终端接收该目标消息。由于第一最大序列号为移动终端接收到的历史消息的序列号中的最大值,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值,且序列号为推送服务器针对移动终端的消息进行排序后的消息的序号,故而推送服务器中针对移动终端的所有消息是经过排序并确定序列号的,且已经推送给移动终端的消息可以由第一最大序列号直接指示,即需要推送给移动终端的消息(目标消息)可以由第一最大序列号和第二最大序列号准确确定,如此能够避免推送服务器重复推送消息或漏推送消息,提高消息推送的可靠性。
与所述图2A、图3、图4所示的实施例一致的,请参阅图5,图5是本申请实施例提供的一种移动终端的结构示意图,该推送服务器运行有一个或至少一个应用程序和操作系统,如图所示,该推送服务器包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序不同于所述一个或至少一个应用程序,且所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行以下步骤的指令;
向所述移动终端发送新消息通知;
接收来自所述移动终端的消息拉取请求,所述消息拉取请求包括所述移动终端保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
根据所述第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值;
向所述移动终端发送所述目标消息。
可以看出,本申请实施例中,推送服务器向移动终端推送消息时,推送服务器首先向所述移动终端发送新消息通知,移动终端接收该新消息通知,获取保存的第一最大序列号,并向推送服务器发送携带该第一最大序列号的消息拉取请求,推送服务器接收该消息拉取请求,根据第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,并向移动终端发送目标消息,移动终端接收该目标消息。由于第一最大序列号为移动终端接收到的历史消息的序列号中的最大值,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值,且序列号为推送服务器针对移动终端的消息进行排序后的消息的序号,故而推送服务器中针对移动终端的所有消息是经过排序并确定序列号的,且已经推送给移动终端的消息可以由第一最大序列号直接指示,即需要推送给移动终端的消息(目标消息)可以由第一最大序列号和第二最大序列号准确确定,如此能够避免推送服务器重复推送消息或漏推送消息,提高消息推送的可靠性。
在一个可能的示例中,在所述根据所述第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息方面,所述程序中的指令具体用于执行以下操作:确定所述第一最大序列号和预存的第二最大序列号的差值;以及根据所述差值和所述第一最大序列号确定所述移动终端未接收到的至少一个新消息为所述目标消息。
在一个可能的示例中,在所述向所述移动终端发送所述目标消息方面,所述程序中的指令具体用于执行以下操作:向所述移动终端发送数据包,所述数据包包括所述目标消息和所述目标消息的序列号;所述序列号用于所述移动终端在检测到所述第一最大序列号小于所述目标消息的序列号时,保存所述目标消息,并根据所述目标消息的序列号更新所述第一最大序列号;或者,所述序列号用于所述移动终端在检测到所述第一最大序列号大于或等于所述目标消息的序列号时,丢弃所述目标消息。
在一个可能的示例中,所述程序还包括用于执行以下操作的指令:在所述向所述移动终端发送新消息通知之前,在目标时间窗内检测到针对所述移动终端的多个所述移动终端未接收到的新消息,排序所述多个所述移动终端未接收到的新消息,并确定每个所述移动终端未接收到的新消息的序列号,所述目标时间窗的时长与参考时长匹配,所述参考时长为所述推送服务器发送一个新消息通知和接收对应的消息拉取请求之间的平均间隔时长;以及用于建立所述多个所述移动终端未接收到的新消息与所述新消息通知之间的关联关系,所述目标消息包括所述多个所述移动终端未接收到的新消息;以及用于在所述目标时间窗之后的预设时段内检测到正在向所述移动终端发送参考消息,发送完成所述参考消息,或者,在所述预设时段内未检测到正在向所述移动终端发送消息。
与所述图2A、图3、图4所示的实施例一致的,请参阅图6,图6是本申请实施例提供的一种移动终端的结构示意图,该移动终端运行有一个或至少一个应用程序和操作系统,如图所示,该移动终端包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序不同于所述一个或至少一个应用程序,且所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行以下步骤的指令;
接收来自所述推送服务器的新消息通知;
获取保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
向所述推送服务器发送消息拉取请求,所述消息拉取请求包括所述第一最大序列号;
接收来自所述推送服务器的目标消息,所述目标消息是所述推送服务器根据所述第一最大序列号和预存的第二最大序列号确定的所述移动终端未接收到的消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值。
可以看出,本申请实施例中,推送服务器向移动终端推送消息时,推送服务器首先向所述移动终端发送新消息通知,移动终端接收该新消息通知,获取保存的第一最大序列号,并向推送服务器发送携带该第一最大序列号的消息拉取请求,推送服务器接收该消息拉取请求,根据第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,并向移动终端发送目标消息,移动终端接收该目标消息。由于第一最大序列号为移动终端接收到的历史消息的序列号中的最大值,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值,且序列号为推送服务器针对移动终端的消息进行排序后的消息的序号,故而推送服务器中针对移动终端的所有消息是经过排序并确定序列号的,且已经推送给移动终端的消息可以由第一最大序列号直接指示,即需要推送给移动终端的消息(目标消息)可以由第一最大序列号和第二最大序列号准确确定,如此能够避免推送服务器重复推送消息或漏推送消息,提高消息推送的可靠性。
在一个可能的示例中,在所述接收来自所述推送服务器的目标消息方面,所述程序中的指令具体用于执行以下操作:接收来自所述推送服务器的数据包,所述数据包包括所述目标消息和所述目标消息的序列号;以及用于在检测到所述第一最大序列号小于所述目标消息的序列号时,保存所述目标消息,并根据所述目标消息的序列号更新所述第一最大序列号;或者,在检测到所述第一最大序列号大于或等于所述目标消息的序列号时,丢弃所述目标消息。
在一个可能的示例中,所述目标消息包括所述推送服务器在目标时间窗内检测到的针对所述移动终端的多个所述移动终端未接收到的新消息,所述目标时间窗的时长与参考时长匹配,所述参考时长为所述推送服务器发送一个新消息通知和接收对应的消息拉取请求之间的平均间隔时长;
所述新消息通知是所述推送服务器在检测到针对所述移动终端的所述多个所述移动终端未接收到的新消息的情况下,执行预设操作之后而发送的;
所述预设操作包括:排序所述多个所述移动终端未接收到的新消息,确定每个所述移动终端未接收到的新消息的序列号,建立所述多个所述移动终端未接收到的新消息与所述新消息通知之间的关联关系,在所述目标时间窗之后的预设时段内检测到正在向所述移动终端发送参考消息,发送完成所述参考消息,或者,在所述预设时段内未检测到正在向所述移动终端发送消息。
上述实施例主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,移动终端为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据所述方法示例对移动终端进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。所述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
下面为本发明装置实施例,本发明装置实施例用于执行本发明方法实施例所实现的方法。如图7所示,该推送服务器可以包括发送单元701、接收单元702和确定单元703,其中,
所述发送单元701,用于向所述移动终端发送新消息通知;
所述接收单元702,用于接收来自所述移动终端的消息拉取请求,所述消息拉取请求包括所述移动终端保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
所述确定单元703,用于根据所述第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值;
所述发送单元701,还用于向所述移动终端发送所述目标消息。
可以看出,本发明实施例中,推送服务器向移动终端推送消息时,推送服务器首先向所述移动终端发送新消息通知,移动终端接收该新消息通知,获取保存的第一最大序列号,并向推送服务器发送携带该第一最大序列号的消息拉取请求,推送服务器接收该消息拉取请求,根据第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,并向移动终端发送目标消息,移动终端接收该目标消息。由于第一最大序列号为移动终端接收到的历史消息的序列号中的最大值,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值,且序列号为推送服务器针对移动终端的消息进行排序后的消息的序号,故而推送服务器中针对移动终端的所有消息是经过排序并确定序列号的,且已经推送给移动终端的消息可以由第一最大序列号直接指示,即需要推送给移动终端的消息(目标消息)可以由第一最大序列号和第二最大序列号准确确定,如此能够避免推送服务器重复推送消息或漏推送消息,提高消息推送的可靠性。
在一个可能的示例中,在所述根据所述第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息方面,所述确定单元703具体用于:确定所述第一最大序列号和预存的第二最大序列号的差值;以及用于根据所述差值和所述第一最大序列号确定所述移动终端未接收到的至少一个新消息为所述目标消息。
在一个可能的示例中,在所述向所述移动终端发送所述目标消息方面,所述发送单元701具体用于:向所述移动终端发送数据包,所述数据包包括所述目标消息和所述目标消息的序列号;所述序列号用于所述移动终端在检测到所述第一最大序列号小于所述目标消息的序列号时,保存所述目标消息,并根据所述目标消息的序列号更新所述第一最大序列号;或者,所述序列号用于所述移动终端在检测到所述第一最大序列号大于或等于所述目标消息的序列号时,丢弃所述目标消息。
在一个可能的示例中,所述推送服务器700还包括排序单元、建立单元和检测控制单元,其中,
所述排序单元,用于在所述发送单元701向所述移动终端发送新消息通知之前,在目标时间窗内检测到针对所述移动终端的多个所述移动终端未接收到的新消息,排序所述多个所述移动终端未接收到的新消息,并确定每个所述移动终端未接收到的新消息的序列号,所述目标时间窗的时长与参考时长匹配,所述参考时长为所述推送服务器发送一个新消息通知和接收对应的消息拉取请求之间的平均间隔时长;
所述建立单元,用于建立所述多个所述移动终端未接收到的新消息与所述新消息通知之间的关联关系,所述目标消息包括所述多个所述移动终端未接收到的新消息;
所述检测控制单元,用于在所述目标时间窗之后的预设时段内检测到正在向所述移动终端发送参考消息,发送完成所述参考消息,或者,在所述预设时段内未检测到正在向所述移动终端发送消息。
需要注意的是,本发明装置实施例所描述的服务器是以功能单元的形式呈现。这里所使用的术语“单元”应当理解为尽可能最宽的含义,用于实现各个“单元”所描述功能的对象例如可以是集成电路ASIC,单个电路,用于执行一个或多个软件或固件程序的处理器(共享的、专用的或芯片组)和存储器,组合逻辑电路,和/或提供实现上述功能的其他合适的组件。
具体来说,上述发送单元701可以是推送服务器的发送器,接收单元702可以是推送服务器的接收器,确定单元703可以是推送服务器的处理器。
下面为本发明装置实施例,本发明装置实施例用于执行本发明方法实施例所实现的方法。如图8所示,该移动终端可以包括接收单元801、获取单元802、发送单元803,其中,
所述接收单元801,用于接收来自所述推送服务器的新消息通知;
所述获取单元802,用于获取保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
所述发送单元803,用于向所述推送服务器发送消息拉取请求,所述消息拉取请求包括所述第一最大序列号;
所述接收单元801,还用于接收来自所述推送服务器的目标消息,所述目标消息是所述推送服务器根据所述第一最大序列号和预存的第二最大序列号确定的所述移动终端未接收到的消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值。
可以看出,本发明实施例中,推送服务器向移动终端推送消息时,推送服务器首先向所述移动终端发送新消息通知,移动终端接收该新消息通知,获取保存的第一最大序列号,并向推送服务器发送携带该第一最大序列号的消息拉取请求,推送服务器接收该消息拉取请求,根据第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,并向移动终端发送目标消息,移动终端接收该目标消息。由于第一最大序列号为移动终端接收到的历史消息的序列号中的最大值,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值,且序列号为推送服务器针对移动终端的消息进行排序后的消息的序号,故而推送服务器中针对移动终端的所有消息是经过排序并确定序列号的,且已经推送给移动终端的消息可以由第一最大序列号直接指示,即需要推送给移动终端的消息(目标消息)可以由第一最大序列号和第二最大序列号准确确定,如此能够避免推送服务器重复推送消息或漏推送消息,提高消息推送的可靠性。
在一个可能的示例中,在所述接收来自所述推送服务器的目标消息方面,所述接收单元801具体用于:接收来自所述推送服务器的数据包,所述数据包包括所述目标消息和所述目标消息的序列号;以及用于在检测到所述第一最大序列号小于所述目标消息的序列号时,保存所述目标消息,并根据所述目标消息的序列号更新所述第一最大序列号;或者,以及用于在检测到所述第一最大序列号大于或等于所述目标消息的序列号时,丢弃所述目标消息。
在一个可能的示例中,所述目标消息包括所述推送服务器在目标时间窗内检测到的针对所述移动终端的多个所述移动终端未接收到的新消息,所述目标时间窗的时长与参考时长匹配,所述参考时长为所述推送服务器发送一个新消息通知和接收对应的消息拉取请求之间的平均间隔时长;
所述新消息通知是所述推送服务器在检测到针对所述移动终端的所述多个所述移动终端未接收到的新消息的情况下,执行预设操作之后而发送的;
所述预设操作包括:排序所述多个所述移动终端未接收到的新消息,确定每个所述移动终端未接收到的新消息的序列号,建立所述多个所述移动终端未接收到的新消息与所述新消息通知之间的关联关系,在所述目标时间窗之后的预设时段内检测到正在向所述移动终端发送参考消息,发送完成所述参考消息,或者,在所述预设时段内未检测到正在向所述移动终端发送消息。
需要注意的是,本发明装置实施例所描述的移动终端是以功能单元的形式呈现。这里所使用的术语“单元”应当理解为尽可能最宽的含义,用于实现各个“单元”所描述功能的对象例如可以是集成电路ASIC,单个电路,用于执行一个或多个软件或固件程序的处理器(共享的、专用的或芯片组)和存储器,组合逻辑电路,和/或提供实现上述功能的其他合适的组件。
具体来说,上述接收单元801和发送单元803可以是移动终端的通信接口,上述获取单元803可以是移动终端的处理器。
请参阅图9,图9是本申请实施例提供了一种智能手机900的结构示意图,所述智能手机900包括:壳体910、触控显示屏920、主板930、电池940和副板950,主板930上设置有前置摄像头931、处理器932、存储器933、电源管理芯片934等,副板上设置有振子951、一体音腔952、VOOC闪充接口953和指纹识别模组954。
其中,该智能手机上运行有操作系统,具体执行以下操作:接收来自所述推送服务器的新消息通知;获取保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;向所述推送服务器发送消息拉取请求,所述消息拉取请求包括所述第一最大序列号;接收来自所述推送服务器的目标消息,所述目标消息是所述推送服务器根据所述第一最大序列号和预存的第二最大序列号确定的所述移动终端未接收到的消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值。
所述处理器932是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器933内的软件程序和/或模块,以及调用存储在存储器933内的数据,执行智能手机的各种功能和处理数据,从而对智能手机进行整体监控。可选的,处理器932可包括一个或多个处理单元;优选的,处理器932可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,所述调制解调处理器也可以不集成到处理器932中。该处理器932例如可以是中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable GateArray,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
所述存储器933可用于存储软件程序以及模块,处理器932通过运行存储在存储器933的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器933可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据智能手机的使用所创建的数据等。此外,存储器933可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。该存储器933例如可以是随机存取存储器(RandomAccess Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(ElectricallyEPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质。
参见图10,本申请实施例还提供一种消息处理系统1000,可包括:推送服务器1010和移动终端1020,其中,
所述推送服务器1010,用于向所述移动终端发送新消息通知;
所述移动终端1020,用于接收来自所述推送服务器的新消息通知;
所述移动终端1020,用于获取保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
所述移动终端1020,还用于向所述推送服务器发送消息拉取请求,所述消息拉取请求包括所述第一最大序列号;
所述推送服务器1010,还用于接收来自所述移动终端的消息拉取请求,所述消息拉取请求包括所述移动终端保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
所述推送服务器1010,还用于根据所述第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值;
所述推送服务器1010,还用于向所述移动终端发送所述目标消息。
所述移动终端1020,还用于接收来自所述推送服务器的目标消息,所述目标消息是所述推送服务器根据所述第一最大序列号和预存的第二最大序列号确定的所述移动终端未接收到的消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值。
可以看出,本申请实施例中,推送服务器向移动终端推送消息时,推送服务器首先向所述移动终端发送新消息通知,移动终端接收该新消息通知,获取保存的第一最大序列号,并向推送服务器发送携带该第一最大序列号的消息拉取请求,推送服务器接收该消息拉取请求,根据第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,并向移动终端发送目标消息,移动终端接收该目标消息。由于第一最大序列号为移动终端接收到的历史消息的序列号中的最大值,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值,且序列号为推送服务器针对移动终端的消息进行排序后的消息的序号,故而推送服务器中针对移动终端的所有消息是经过排序并确定序列号的,且已经推送给移动终端的消息可以由第一最大序列号直接指示,即需要推送给移动终端的消息(目标消息)可以由第一最大序列号和第二最大序列号准确确定,如此能够避免推送服务器重复推送消息或漏推送消息,提高消息推送的可靠性。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括移动终端。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括移动终端。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (11)
1.一种消息处理方法,其特征在于,应用于推送服务器,所述推送服务器用于向移动终端发送消息,所述消息的序列号为所述推送服务器针对所述移动终端的消息进行排序后的消息的序号;所述方法包括:
在目标时间窗内检测到针对所述移动终端的多个所述移动终端未接收到的新消息,排序所述多个所述移动终端未接收到的新消息,并确定每个所述移动终端未接收到的新消息的序列号,以及确定每个移动终端单次可被推送新消息的最大数量,所述目标时间窗的时长与参考时长匹配,所述参考时长为所述推送服务器发送一个新消息通知和接收对应的消息拉取请求之间的平均间隔时长,所述每个移动终端单次可被推送新消息的最大数量是根据所述移动终端的优先级确定的;
建立所述多个所述移动终端未接收到的新消息与所述新消息通知之间的关联关系,目标消息包括所述多个所述移动终端未接收到的新消息;
在所述目标时间窗之后的预设时段内检测到正在向所述移动终端发送参考消息,发送完成所述参考消息,或者,在所述预设时段内未检测到正在向所述移动终端发送消息;
向所述移动终端发送新消息通知;
接收来自所述移动终端的消息拉取请求,所述消息拉取请求包括所述移动终端保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
根据所述第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值;
向所述移动终端发送所述目标消息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,包括:
确定所述第一最大序列号和预存的第二最大序列号的差值;
根据所述差值和所述第一最大序列号确定所述移动终端未接收到的至少一个新消息为所述目标消息。
3.根据权利要求1或2所述的方法,其特征在于,所述向所述移动终端发送所述目标消息,包括:
向所述移动终端发送数据包,所述数据包包括所述目标消息和所述目标消息的序列号;
所述序列号用于所述移动终端在检测到所述第一最大序列号小于所述目标消息的序列号时,保存所述目标消息,并根据所述目标消息的序列号更新所述第一最大序列号;或者,
所述序列号用于所述移动终端在检测到所述第一最大序列号大于或等于所述目标消息的序列号时,丢弃所述目标消息。
4.一种消息处理方法,其特征在于,应用于移动终端,所述移动终端用于接收来自推送服务器的消息,所述消息的序列号为所述推送服务器针对所述移动终端的消息进行排序后的消息的序号;目标消息包括所述推送服务器在目标时间窗内检测到的针对所述移动终端的多个所述移动终端未接收到的新消息,所述目标时间窗的时长与参考时长匹配,所述参考时长为所述推送服务器发送一个新消息通知和接收对应的消息拉取请求之间的平均间隔时长;所述方法包括:
接收来自所述推送服务器的新消息通知;其中,所述新消息通知是所述推送服务器在检测到针对所述移动终端的所述多个所述移动终端未接收到的新消息的情况下,执行预设操作之后而发送的;所述预设操作包括:排序所述多个所述移动终端未接收到的新消息,确定每个所述移动终端未接收到的新消息的序列号,确定每个移动终端单次可被推送新消息的最大数量,所述每个移动终端单次可被推送新消息的最大数量是根据所述移动终端的优先级确定的,建立所述多个所述移动终端未接收到的新消息与所述新消息通知之间的关联关系,在所述目标时间窗之后的预设时段内检测到正在向所述移动终端发送参考消息,发送完成所述参考消息,或者,在所述预设时段内未检测到正在向所述移动终端发送消息;
获取保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
向所述推送服务器发送消息拉取请求,所述消息拉取请求包括所述第一最大序列号;
接收来自所述推送服务器的目标消息,所述目标消息是所述推送服务器根据所述第一最大序列号和预存的第二最大序列号确定的所述移动终端未接收到的消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值。
5.根据权利要求4所述的方法,其特征在于,所述接收来自所述推送服务器的目标消息,包括:
接收来自所述推送服务器的数据包,所述数据包包括所述目标消息和所述目标消息的序列号;
在检测到所述第一最大序列号小于所述目标消息的序列号时,保存所述目标消息,并根据所述目标消息的序列号更新所述第一最大序列号;或者,
在检测到所述第一最大序列号大于或等于所述目标消息的序列号时,丢弃所述目标消息。
6.一种服务器,其特征在于,包括发送单元、接收单元、确定单元、排序单元、建立单元和检测控制单元,其中,
所述发送单元,用于向所述移动终端发送新消息通知;所述接收单元,用于接收来自所述移动终端的消息拉取请求,所述消息拉取请求包括所述移动终端保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
所述确定单元,用于根据所述第一最大序列号和预存的第二最大序列号确定所述移动终端未接收到的目标消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值;
所述发送单元,还用于向所述移动终端发送所述目标消息;
所述排序单元,用于在所述发送单元向所述移动终端发送新消息通知之前,在目标时间窗内检测到针对所述移动终端的多个所述移动终端未接收到的新消息,排序所述多个所述移动终端未接收到的新消息,并确定每个所述移动终端未接收到的新消息的序列号,以及确定每个移动终端单次可被推送新消息的最大数量,所述目标时间窗的时长与参考时长匹配,所述参考时长为所述推送服务器发送一个新消息通知和接收对应的消息拉取请求之间的平均间隔时长,所述每个移动终端单次可被推送新消息的最大数量是根据所述移动终端的优先级确定的;
所述建立单元,用于建立所述多个所述移动终端未接收到的新消息与所述新消息通知之间的关联关系,所述目标消息包括所述多个所述移动终端未接收到的新消息;
所述检测控制单元,用于在所述目标时间窗之后的预设时段内检测到正在向所述移动终端发送参考消息,发送完成所述参考消息,或者,在所述预设时段内未检测到正在向所述移动终端发送消息。
7.一种移动终端,其特征在于,目标消息包括所述推送服务器在目标时间窗内检测到的针对所述移动终端的多个所述移动终端未接收到的新消息,所述目标时间窗的时长与参考时长匹配,所述参考时长为所述推送服务器发送一个新消息通知和接收对应的消息拉取请求之间的平均间隔时长;包括接收单元、获取单元、发送单元,其中,
所述接收单元,用于接收来自所述推送服务器的新消息通知;其中,所述新消息通知是所述推送服务器在检测到针对所述移动终端的所述多个所述移动终端未接收到的新消息的情况下,执行预设操作之后而发送的;所述预设操作包括:排序所述多个所述移动终端未接收到的新消息,确定每个所述移动终端未接收到的新消息的序列号,确定每个移动终端单次可被推送新消息的最大数量,建立所述多个所述移动终端未接收到的新消息与所述新消息通知之间的关联关系,所述每个移动终端单次可被推送新消息的最大数量是根据所述移动终端的优先级确定的,在所述目标时间窗之后的预设时段内检测到正在向所述移动终端发送参考消息,发送完成所述参考消息,或者,在所述预设时段内未检测到正在向所述移动终端发送消息;
所述获取单元,用于获取保存的第一最大序列号,所述第一最大序列号为所述移动终端接收到的历史消息的序列号中的最大值;
所述发送单元,用于向所述推送服务器发送消息拉取请求,所述消息拉取请求包括所述第一最大序列号;
所述接收单元,还用于接收来自所述推送服务器的目标消息,所述目标消息是所述推送服务器根据所述第一最大序列号和预存的第二最大序列号确定的所述移动终端未接收到的消息,所述第二最大序列号为所述推送服务器所检测到的针对所述移动终端的消息的序列号中的最大值。
8.一种推送服务器,其特征在于,包括处理器、存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行权利要求1-3任一项所述方法中的步骤的指令。
9.一种移动终端,其特征在于,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行权利要求4或5任一项方法中的步骤的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-3和/或权利要求4-5任一项所述的方法。
11.一种消息处理系统,其特征在于,包括推送服务器和移动终端,所述推送服务器用于执行如权利要求1-3任一项所述的方法,所述移动终端用于执行如权利要求4或5任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810533513.7A CN108810116B (zh) | 2018-05-29 | 2018-05-29 | 消息处理方法及相关产品 |
PCT/CN2019/088868 WO2019228369A1 (zh) | 2018-05-29 | 2019-05-28 | 消息处理方法及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810533513.7A CN108810116B (zh) | 2018-05-29 | 2018-05-29 | 消息处理方法及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108810116A CN108810116A (zh) | 2018-11-13 |
CN108810116B true CN108810116B (zh) | 2021-04-13 |
Family
ID=64089189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810533513.7A Expired - Fee Related CN108810116B (zh) | 2018-05-29 | 2018-05-29 | 消息处理方法及相关产品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108810116B (zh) |
WO (1) | WO2019228369A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108810116B (zh) * | 2018-05-29 | 2021-04-13 | Oppo广东移动通信有限公司 | 消息处理方法及相关产品 |
CN109600302A (zh) * | 2018-11-27 | 2019-04-09 | 金瓜子科技发展(北京)有限公司 | 一种有序通讯的方法、装置、存储介质及电子设备 |
CN109617807B (zh) * | 2018-12-28 | 2019-10-22 | 深圳云天励飞技术有限公司 | 路由信息更新方法、装置、网关及存储介质 |
CN111385330B (zh) * | 2018-12-29 | 2024-01-26 | 广州市百果园信息技术有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
CN110351569B (zh) * | 2019-06-25 | 2021-02-02 | 腾讯科技(深圳)有限公司 | 一种直播内容处理方法、装置、设备及介质 |
CN111131475B (zh) * | 2019-12-27 | 2022-12-09 | Oppo广东移动通信有限公司 | 一种数据同步方法、装置及终端设备 |
CN113965580A (zh) * | 2020-06-29 | 2022-01-21 | 北京字节跳动网络技术有限公司 | 同步消息的方法和装置 |
CN112069195A (zh) * | 2020-09-09 | 2020-12-11 | 上海依图网络科技有限公司 | 基于数据库的消息传输方法、装置、电子设备及存储介质 |
CN114968611B (zh) * | 2021-07-13 | 2023-10-27 | 中移互联网有限公司 | 消息传输方法、消息服务器、终端及电子设备 |
CN115801854B (zh) * | 2023-01-29 | 2023-04-28 | 安徽深迪科技有限公司 | 一种面向智能工厂的任务协同规划方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105162682A (zh) * | 2015-07-29 | 2015-12-16 | 大连理工大学 | 一种实现离线状态定时推送消息的方法 |
CN105897439A (zh) * | 2016-04-05 | 2016-08-24 | 上海上讯信息技术股份有限公司 | 一种消息推送的方法与设备 |
CN107147724A (zh) * | 2017-05-23 | 2017-09-08 | 深圳市金立通信设备有限公司 | 一种消息推送方法、服务器及计算机可读存储介质 |
CN107402975A (zh) * | 2017-06-30 | 2017-11-28 | 深圳市金立通信设备有限公司 | 一种信息处理方法、服务器及终端 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297917A (zh) * | 2012-03-02 | 2013-09-11 | 华为终端有限公司 | 基于无线局域网络的信息推送方法、装置及系统 |
US9928478B2 (en) * | 2013-02-19 | 2018-03-27 | Medical Solutions, Inc. | Method and system for tracking equipment |
CN104092724B (zh) * | 2014-04-10 | 2016-08-17 | 腾讯科技(深圳)有限公司 | 歌曲数据拉取的方法、终端及服务器 |
CN107145499A (zh) * | 2016-03-01 | 2017-09-08 | 阿里巴巴集团控股有限公司 | 用于预写式日志归档的方法及设备 |
CN108810116B (zh) * | 2018-05-29 | 2021-04-13 | Oppo广东移动通信有限公司 | 消息处理方法及相关产品 |
-
2018
- 2018-05-29 CN CN201810533513.7A patent/CN108810116B/zh not_active Expired - Fee Related
-
2019
- 2019-05-28 WO PCT/CN2019/088868 patent/WO2019228369A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105162682A (zh) * | 2015-07-29 | 2015-12-16 | 大连理工大学 | 一种实现离线状态定时推送消息的方法 |
CN105897439A (zh) * | 2016-04-05 | 2016-08-24 | 上海上讯信息技术股份有限公司 | 一种消息推送的方法与设备 |
CN107147724A (zh) * | 2017-05-23 | 2017-09-08 | 深圳市金立通信设备有限公司 | 一种消息推送方法、服务器及计算机可读存储介质 |
CN107402975A (zh) * | 2017-06-30 | 2017-11-28 | 深圳市金立通信设备有限公司 | 一种信息处理方法、服务器及终端 |
Also Published As
Publication number | Publication date |
---|---|
WO2019228369A1 (zh) | 2019-12-05 |
CN108810116A (zh) | 2018-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810116B (zh) | 消息处理方法及相关产品 | |
CN108156268B (zh) | 设备标识的获取方法及服务器、终端设备 | |
CN106874273B (zh) | 渠道信息统计方法、装置和系统 | |
CN108429739B (zh) | 一种识别蜜罐的方法、系统及终端设备 | |
CN111143371A (zh) | 数据查询方法、装置、设备、系统及介质 | |
CN111193815A (zh) | 域名解析方法、装置、计算机可读存储介质和计算机设备 | |
CN109067883B (zh) | 信息推送方法及装置 | |
CN111726258A (zh) | 网络性能检测方法及相关装置 | |
CN107360179B (zh) | 一种风险信息共享的方法、终端及计算机可读存储介质 | |
CN111541772A (zh) | 智能提醒方法和系统以及云服务器 | |
US9179004B2 (en) | Method and apparatus for charging | |
CN110401669B (zh) | 一种身份校验方法及相关设备 | |
CN115297447B (zh) | 一种长短信合并方法、系统、设备及存储介质 | |
CN104580084A (zh) | 一种分享多媒体文件的方法、终端及系统 | |
CN107819761B (zh) | 数据处理方法、装置及可读存储介质 | |
CN112784318A (zh) | 一种生成设备唯一识别码的方法、装置和存储介质 | |
CN113194521B (zh) | 5g通信模块搜网方法、装置、计算机设备和存储介质 | |
CN110771113B (zh) | 刷量终端检测方法及装置 | |
CN110493735B (zh) | 一种短信处理方法及装置 | |
CN112689249B (zh) | 短信的发送方法及装置、系统、存储介质、电子设备 | |
CN105163335B (zh) | 一种网络接入管理方法、服务器、移动终端以及系统 | |
CN110719586B (zh) | 业务建立方法、装置及服务器 | |
CN109379704B (zh) | 短信的区域信息校正方法、装置、设备及存储介质 | |
CN110771114A (zh) | 刷量ip地址检测方法及装置 | |
CN114025356A (zh) | 恶意短信验证码的识别方法、相关装置及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210413 |