一种ios消息推送方法及系统
技术领域
本发明涉及通信
技术领域
,尤其涉及一种IOS消息推送方法及系统。背景技术
为提升用户体验,在用户不打开APP的前提下了解后台程序运行状态,一般可以通过应用程序服务器端推送相应的消息的方式实现。然而,由于IOS系统服务不开源,APP服务提供商在调用IOS推送服务前,服务器端需要对其推送的消息进行有效区分。当APP用户量较大,且需要推送消息种类变多时,为避免信息推送错误,容易使得服务器端负载过大,从而导致消息推送效率降低。
发明内容
有鉴于此,本发明实施例提供了一种IOS消息推送方法及系统,以解决服务器负载过大,导致消息推送效率低的问题。
在本发明实施例的第一方面,提供了一种IOS消息推送方法,包括:
将用户注册的设备信息和用户信息存储至节点服务器后,中心服务器获取设备信息和用户信息生成唯一标识码,将唯一标识码添加至预推送消息;
为预推送消息添加时间戳,将所有预推送消息存放至消息队列,节点服务器实时从消息队列中取出预推送消息,解析并验证预推送消息中唯一标识码;
节点服务器根据唯一标识码,调用APNS服务通过长连接将预推送消息发送至对应的用户设备。
在本发明实施例的第二方面,提供了一种IOS消息推送系统,包括:
中心服务器端,用于将用户注册的设备信息和用户信息存储至节点服务器后,获取设备信息和用户信息生成唯一标识码,将唯一标识码添加至预推送消息,并为预推送消息添加时间戳,将所有预推送消息存放至消息队列;
节点服务器端,用于实时从消息队列中取出预推送消息,解析并验证预推送消息中唯一标识码,并根据唯一标识码,调用APNS服务通过长连接将预推送消息发送至对应的用户设备。
本发明实施例中,中心服务器生成唯一标识码,将唯一标识码添加至预推送消息,并将所有生成的预推送消息存放至消息队列,节点服务器实时从消息队列中取出预推送消息,调用APNS服务进行推送处理。基于中心服务器与节点服务器的配合,从而能够有效减轻服务器负载,可以提高消息推送效率,减少消息推送时延,并能保障消息准确推送。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获取其他附图。
图1为本发明的一个实施例提供的一种IOS消息推送方法的原理示意图;
图2为本发明的一个实施例提供的一种IOS消息推送方法的流程示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明的说明书或权利要求书及上述附图中的术语“包括”以及其他相近意思表述,意指覆盖不排他的包含,如包含一系列步骤或单元的过程、方法或系统、设备没有限定于已列出的步骤或单元。此外,“第一”“第二”用于区分不同对象,并非用于描述特定顺序。
可以理解的是,如图1所示,所述中心服务器110和节点服务器120均为应用程序服务端,中心服务器110用于统一生成推送的消息,而节点服务器120从中心服务器110获取到推送任务后,其中,必要时节点服务器可以直接生成消息进行推送,调用IOS系统提供的SPNS服务130,将消息推送至用户设备的客户端140,从而实现消息的推送。基于中心服务器110与节点服务器120的配合,对海量的消息推送,可以提高消息推送效率,减少推送时延。
具体请参见图2,图2为本发明实施例提供的一种IOS消息推送方法的流程示意图,包括:
S101、将用户注册的设备信息和用户信息存储至节点服务器后,中心服务器获取设备信息和用户信息生成唯一标识码,将唯一标识码添加至预推送消息;
所述设备信息为用户所使用终端设备相关信息,包括设备型号等相关硬件信息,还可以包括终端设备标识码,所述用户信息为用户使用APP时注册的用户信息,一般为手机号、社交账号或邮箱,还可以包括用户基本身份信息,如性别、年龄等。其中,所述用户信息中至少包含有推送权限信息。推送权限可以分为前台推送权限和后台推送权限,以及推送消息类别的权限。
用户在使用应用程序时,服务器需要获取一定的设备信息和用户信息,以便保证推送消息能准确发送至用户,并保障推送内容的准确性。获取的设备信息和用户信息一般存储于节点服务器,在中心服务器需要进行消息推送时由中心服务器进行获取,节点服务器还可以对需要推送消息的设备自动上报至中心服务器。所述节点服务器一般为跳数最少的服务器或分管某一区域的服务器。
所述唯一标识码为每条预推送消息的标识码,在数据报文占据特定字段,可以随数据报文(包含推送消息内容)一起转发。所述唯一标识码可以由特定算法计算得到,如哈希算法,具体可由于设备标识、用户标识以及特定分类标识组成。
优选的,中心服务器根据客户端注册的设备信息和用户信息,对设备进行分类,并将分类标识添加至唯一标识码中,以便节点服务根据分类标识对是否发送至用户设备进行判断。
进一步的,节点服务器实时获取设备信息和用户信息,根据最新获取的设备信息、用户信息,结合分类标识判断是否推送中心服务器下发的预推送消息。
若中心服务器生成的唯一标识码中包含有分类标识,节点服务器根据分类标识判断是否推送消息。其中,由于网络消息推送及数据传输存在时延,若节点服务器直接根据分类标识进行推送可能存在错误,如通知用户升级APP时,若中心服务器获知客户端未更新,则推送消息通知用户,而此时节点服务器获知用户已更新完成,则节点服务器可以结合最新获取的信息判定不推送消息。
S102、为预推送消息添加时间戳,将所有预推送消息存放至消息队列,节点服务器实时从消息队列中取出预推送消息,解析并验证预推送消息中唯一标识码;
所述时间戳用于记录推送消息生成时间,在进行消息推送时,节点服务器可以根据时间戳优先选取消息进行推送,保障消息有序推送,减少消息推送时延。所述消息队列中存放有待推送消息,待推送消息种类各异且生成时间不同,节点服务器可以根据时间顺序或消息重要程度等,提取消息进行推送处理。
优选的,节点服务器根据预推送消息的时间戳、优先级和推送范围,调用APNS服务对预推送消息进行推送处理。对于消息队列中的预推送消息,各节点服务器可以同步获取预推送消息,在进行消息提取时,可以根据优先级、时间戳、推送范围等进行提取,如对于优先级高的优先选取,然后基于时间戳确定消息放入的时间,放入时间差越长,则需要优先选取,减少消息推送时延,最后需要考虑推送范围,推送范围月光,节点服务器处理所需时间越长。
其中,节点服务器解析唯一标识码中设备信息和用户信息,将设备标识、用户标识与节点服务器中存储的设备信息和用户信息进行比对,验证预推送消息是否出错。在进行消息验证时,节点服务器可以仅对设备标识、用户标识进行比对,这样既可以验证消息是否有错,同时可以确认推送的用户,避免消息推送出错。
S103、节点服务器根据唯一标识码,调用APNS服务通过长连接将预推送消息发送至对应的用户设备。
所述APNS服务为IOS系统提供的消息推送服务,APNS允许用户设备与苹果服务器间保持常连接状态,APNS服务器验证应用服务器发送的device token(设备识别标识)后,即可实现消息推送。
优选的,基于消息推送后,节点服务器在用户授权范围内实时获取用户数据,基于用户数据分析应用程序状态,判断用户是否处理推送消息对应的事项;若未处理对应的事项,则向中心服务器请求重新生成推送消息或由节点服务器生成推送消息。
节点服务器可以在用户授权范围内,获取用户应用相关数据,如节点服务器推送应用更新通知后,若获取到用户发送的资源更新请求且资源下载完成,可以判断用户应用更新完成,或应用更新后节点服务器直接获取的APP版本判断是否更新完成。若未更新完成,则一段时间后,可以再次推送通知。
本实施例提供的方法,基于中心服务器生成消息放入消息队列,节点服务器提取消息进行推送,可以提高消息处理效率,减少消息推送时延,并能避免推送出错。节点服务器可以根据需要推送的消息分类进行具体处理,保障消息精准推送,同时还可以判断消息是否推送成功,方便进一步处理。
应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定,
在本发明一个实施例中,还提供的一种IOS消息推送系统,该系统包括:
中心服务器端,用于将用户注册的设备信息和用户信息存储至节点服务器后,获取设备信息和用户信息生成唯一标识码,将唯一标识码添加至预推送消息,并为预推送消息添加时间戳,将所有预推送消息存放至消息队列;
其中,所述用户信息中至少包含有推送权限信息。
可选的,中心服务器根据客户端注册的设备信息和用户信息,对设备进行分类,并将分类标识添加至唯一标识码中,以便节点服务根据分类标识对是否发送至用户设备进行判断。
其中,节点服务器实时获取设备信息和用户信息,根据最新获取的设备信息、用户信息,结合分类标识判断是否推送中心服务器下发的预推送消息。
节点服务器端,用于实时从消息队列中取出预推送消息,解析并验证预推送消息中唯一标识码,并根据唯一标识码,调用APNS服务通过长连接将预推送消息发送至对应的用户设备。
优选的,节点服务器根据预推送消息的时间戳、优先级和推送范围取出预推送消息,调用APNS服务对预推送消息进行推送处理。
具体的,节点服务器解析唯一标识码中设备信息和用户信息,将设备标识、用户标识与节点服务器中存储的设备信息和用户信息进行比对,验证预推送消息是否出错。
优选的,所述节点服务器端包括:
推送分析模块,用于基于消息推送后,节点服务器在用户授权范围内实时获取用户数据,基于用户数据分析应用程序状态,判断用户是否处理推送消息对应的事项;
重推送模块,用于若未处理对应的事项,则向中心服务器请求重新生成推送消息或由节点服务器生成推送消息。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
可以理解的是,在一个实施例中,所述电子设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序执行如实施例一中步骤S101~S103,处理器执行所述计算机程序时实现IOS消息推送。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括步骤S101至S103,所述的存储介质包括如ROM/RAM等。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:基于多维度分析的视频推荐方法