一种推送消息接收处理方法

文档序号:10660724阅读:342来源:国知局
一种推送消息接收处理方法
【专利摘要】本发明提供了一种推送消息接收处理方法,包括如下步骤:①获取序号:本地接收服务器的推送消息,从推送消息中提取消息序号,同时从本地读取本地序号;②判断序号:将消息序号和本地序号进行大小对比,如本地序号小于消息序号,则将消息序号覆盖为本地序号并保存,并进入步骤④,如本地序号大于消息序号,则进入下一步;③判断丢失消息:根据消息序号、本地序号和本地消息历史的数据,判断需要接收的丢失消息情况,并向服务器发出获取丢失消息的请求;④结束。本发明通过简单比对消息序号和本地序号的方式,能极大的降低推送消息中丢失消息判断所需要的系统资源,从而有效加快推送消息显示速度。
【专利说明】
一种推送消息接收处理方法
技术领域
[0001]本发明涉及一种推送消息接收处理方法,属于通信技术领域。
【背景技术】
[0002]随着互联网技术的快速发展,手机应用各个技术也逐渐成熟,而消息推送也是其中一种,但是由于网络传输的原因(主要在于网络延迟及丢包),经常会导致推送的消息顺序错乱。
[0003]对此,现有技术提供了一些解决方案,但一般都需要先判断消息的顺序,而判断消息顺序则意味着占用较多的内存和CPU资源,这使得整个过程在推送消息较多的情况下系统会明显变慢,严重影响客户体验。

【发明内容】

[0004]为解决上述技术问题,本发明提供了一种推送消息接收处理方法,该推送消息接收处理方法通过简单比对消息序号和本地序号的方式,能极大的降低推送消息中丢失消息判断所需要的系统资源,从而有效加快推送消息显示速度。
[0005]本发明通过以下技术方案得以实现。
[0006]本发明提供的一种推送消息接收处理方法,包括如下步骤:
[0007]①获取序号:本地接收服务器的推送消息,从推送消息中提取消息序号,同时从本地读取本地序号;
[0008]②判断序号:将消息序号和本地序号进行大小对比,如本地序号小于消息序号,则将消息序号覆盖为本地序号并保存,并进入步骤④,如本地序号大于消息序号,则进入下一步;
[0009]③判断丢失消息:根据消息序号、本地序号和本地消息历史的数据,判断需要接收的丢失消息情况,并向服务器发出获取丢失消息的请求;
[0010]④结束:前端显示推送消息内容,后台进入等待状态以等待接收推送消息进入步骤①。
[0011]所述步骤③,具体为:
[0012]a.判断更新:先根据本地消息历史判断是否接收过当前推送消息,如是则直接进入步骤④,如否则进入下一步;
[0013]b.判断获取需求:根据本地序号和消息序号的差值、及差值段的序号值对应的本地消息历史,判断是否需要获取丢失消息,如否则直接进入步骤④,如是则进入下一步;
[0014]c.获取丢失消息:根据需要获取丢失消息的判断结果,向服务器发出获取丢失消息的请求,同时进入步骤④。
[0015]所述消息序号为推送消息头部的一个字段,每条消息对应一个自动生成的序号。
[0016]所述步骤b.判断获取需求中,判断是否需要获取丢失消息通过推送消息头部设置判断字段来实现,判断字段默认为是,即需要获取,通过推送消息内容部分的指令或服务器反馈信息可将判断字段设置为否,即不需要获取。
[0017]所述步骤④中前端显示推送消息内容,按照接收到的推送消息的消息序号从小到大依次显示。
[0018]本发明的有益效果在于:通过简单比对消息序号和本地序号的方式,能极大的降低推送消息中丢失消息判断所需要的系统资源,从而有效加快推送消息显示速度。
【附图说明】
[0019]图1是本发明的流程示意图。
【具体实施方式】
[0020]下面进一步描述本发明的技术方案,但要求保护的范围并不局限于所述。
[0021 ]如图1所示的一种推送消息接收处理方法,包括如下步骤:
[0022]①获取序号:本地接收服务器的推送消息,从推送消息中提取消息序号,同时从本地读取本地序号,消息序号为推送消息头部的一个字段,每条消息对应一个自动生成的序号;
[0023]②判断序号:将消息序号和本地序号进行大小对比,如本地序号小于消息序号,则将消息序号覆盖为本地序号并保存,并进入步骤④,如本地序号大于消息序号,则进入下一步;
[0024]③判断丢失消息:根据消息序号、本地序号和本地消息历史的数据,判断需要接收的丢失消息情况,并向服务器发出获取丢失消息的请求;
[0025]④结束:在前端按照接收到的推送消息的消息序号从小到大依次显示推送消息内容,后台进入等待状态以等待接收推送消息进入步骤①。
[0026]更具体的,所述步骤③具体为:
[0027 ] a.判断更新:先根据本地消息历史判断是否接收过当前推送消息,如是则直接进入步骤④,如否则进入下一步;
[0028]b.判断获取需求:根据本地序号和消息序号的差值、及差值段的序号值对应的本地消息历史,判断是否需要获取丢失消息,如否则直接进入步骤④,如是则进入下一步,判断是否需要获取丢失消息通过推送消息头部设置判断字段来实现,判断字段默认为是,即需要获取,通过推送消息内容部分的指令或服务器反馈信息可将判断字段设置为否,即不需要获取;
[0029]c.获取丢失消息:根据需要获取丢失消息的判断结果,向服务器发出获取丢失消息的请求,同时进入步骤④。
[0030]换言之,每条消息都有自己的序号(orderNo),本地保存一个最新的合法的消息序号(1calOrderNo),当客户端接收到推送消息时,就用orderNo和1calOrderNo做比较,若推送消息序号大于本地序号,则说明该消息合法,保存并修改1calOrderNo的值,例如:本地保存的序号为10005,收到一条推送消息,消息序号是10006,那该消息是合法的,本地的序号则改成10006。
[0031]每条消息含有isSkip字段,该字段用作当收到信息有异常时,是否对丢失的消息做处理,例如:本地保存的消息是序号10005,新收到的推送消息的序号是10000,那期间可能丢失了5条消息,先判断本地是否接收过以前的消息,若没有,则读取isSkip字段,若isSkip字段为0(即否)则直接抛掉,若isSkip字段为I,就向服务器发送获取请求。
[0032]在现有技术的CPU中进行简单的大小比对,仅需要占用极少的资源,几乎可以忽略不计,同时由于步骤②中仅需要对两个序号进行比对,因此占用的内存资源也仅为两个字段的空间,即使在后续过程中需要进一步比对判断,也都是精确获取需要判断的字段,整个判断过程也仅需要六个字段(本地消息历史中的当前消息已接收判断字段、当前消息序号、本地序号、差值、差值段序号、差值段序号对应的判断字段),其占用的内存资源和CPU资源也依然可以忽略不计,最终推送消息的排列仅需一次即可,而现有技术中比对本地已接受消息列表和服务器发送消息列表的方式,则需要占用两个消息列表的内存空间明显较多,即使每个消息列表仅保存最多100字段,两个消息列表则占用200个字段,而当推送消息数量达到上百条的时候,显然采用本发明的技术方案,其比对所需资源也可以忽略不计,而现有技术中比对消息列表的方式则会使CPU至少比对上百个消息列表,这会给用户带来明显卡顿的感觉,严重影响用户体验。
【主权项】
1.一种推送消息接收处理方法,其特征在于:包括如下步骤: ①获取序号:本地接收服务器的推送消息,从推送消息中提取消息序号,同时从本地读取本地序号; ②判断序号:将消息序号和本地序号进行大小对比,如本地序号小于消息序号,则将消息序号覆盖为本地序号并保存,并进入步骤④,如本地序号大于消息序号,则进入下一步; ③判断丢失消息:根据消息序号、本地序号和本地消息历史的数据,判断需要接收的丢失消息情况,并向服务器发出获取丢失消息的请求; ④结束:前端显示推送消息内容,后台进入等待状态以等待接收推送消息进入步骤①。2.如权利要求1所述的推送消息接收处理方法,其特征在于:所述步骤③,具体为: a.判断更新:先根据本地消息历史判断是否接收过当前推送消息,如是则直接进入步骤④,如否则进入下一步; b.判断获取需求:根据本地序号和消息序号的差值、及差值段的序号值对应的本地消息历史,判断是否需要获取丢失消息,如否则直接进入步骤④,如是则进入下一步; c.获取丢失消息:根据需要获取丢失消息的判断结果,向服务器发出获取丢失消息的请求,同时进入步骤④。3.如权利要求1所述的推送消息接收处理方法,其特征在于:所述消息序号为推送消息头部的一个字段,每条消息对应一个自动生成的序号。4.如权利要求2所述的推送消息接收处理方法,其特征在于:所述步骤b.判断获取需求中,判断是否需要获取丢失消息通过推送消息头部设置判断字段来实现,判断字段默认为是,即需要获取,通过推送消息内容部分的指令或服务器反馈信息可将判断字段设置为否,即不需要获取。5.如权利要求1所述的推送消息接收处理方法,其特征在于:所述步骤④中前端显示推送消息内容,按照接收到的推送消息的消息序号从小到大依次显示。
【文档编号】H04L12/58GK106027379SQ201610604814
【公开日】2016年10月12日
【申请日】2016年7月28日
【发明人】喻伟, 杨均, 游明琦, 刘轶, 俞杰, 罗永安, 万达, 杨闯, 张易, 田维洪
【申请人】贵州中科汉天下信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1