一种跨移动终端的消息推送方法及装置
技术领域
本发明涉及消息推送领域,特别涉及一种跨移动终端的消息推送方法及装置。
背景技术
目前,全球智能手机和移动网络进入高速增长阶段,手机端应用程序强劲发展,消息推送已经成为手机端应用程序的标准配置,现在很多手机端应用程序都在使用推送服务,提醒用户有更新的内容。推送服务成为我们及时获取各种信息的一个主要来源。
消息推送是指内容提供方定期向预订用户提供数据的方式。这种推送在传统互联网领域已经有很多成熟的应用,比如即时通讯工具,Pushmail(邮件推送服务)等。而进入到“移动互联网”时代,“手机推送”也逐渐形成了一个热门的新领域。
实现手机推送目前采用的方式主要有三种:短信、轮询和长连接。短信作为手机推送的最初形态,试用机型广,可靠性高。但其费用较高,与应用结合性差,推送的内容页限于文本。轮询方式实现技术简单,但也存在实时性差,对客户端开销过大,消耗流量电量过高的致命缺陷。与常见的轮询方式相比,长连接可以保证消息的实时投递,并且较好地控制移动设备的流量、电量消耗。主流的消息推送包括苹果的APNS(Apple Push Notification Service,苹果消息推动服务)和Google的C2DM(Cloudto Device Messaging)。
苹果的APNS消息推送交互关系如下:应用程序向IOS操作系统注册消息推送;IOS操作系统向APNS Server请求deviceToken;应用程序接受deviceToken;应用程序将deviceToken发送给消息PUSH服务端程序;服务端程序向APNS服务发送推送消息;APNS服务将消息发送给应用程序。
Google的C2DM和应用程序的交互关系如下:移动终端使用Google账户登录;应用程序向系统注册消息接收服务,告知服务器接收的账号和本身的AppID;C2DM服务给应用程序分配一个唯一的注册ID;应用程序将该注册ID告知应用服务器;应用服务器推送消息,携带应用程序的注册ID;C2DM服务根据注册ID查询到对应的移动终端,并将消息推送给移动终端。
现有技术方案主要存在如下技术问题:APNS和C2DM均需要基于终端和服务器的链接进行消息推送,如果终端不在线,那么该消息即将丢失。C2DM必须依赖google的账号登录,如果用户注销则无法进行消息推送。上述方案均只解决了单一移动终端操作系统的消息推送机制,无法兼容多操作系统进行消息推送。即使用户与终端在线,推送的时效性和可靠性也不可保证。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述终端离线时不能进行推送、不能跨系统进行消息推送、在线推送不及时的缺陷,提供一种在线离线都能进行推送、能跨系统进行消息推送、推送及时的跨移动终端的消息推送方法及装置。
本发明解决其技术问题所采用的技术方案是:构造一种跨移动终端的消息推送方法,包括如下步骤:
A)判断用户是否登录到服务器,如是,执行步骤B);否则,执行步骤C);
B)所述服务器通过移动终端与其之间建立的链路发送消息到所述移动终端;
C)所述服务器查找用户最后一次登录的移动终端,并判断所述移动终端与所述服务器之间是否存在链路,如是,返回步骤B);否则,执行步骤D);
D)按照事先设定的离线规则将消息转发到特定位置。
在本发明所述的跨移动终端的消息推送方法中,所述步骤B)进一步包括:
B1)移动终端门户启动,并与移动平台建立链路;
B2)用户通过所述移动终端登录到移动平台,并由所述移动平台保存用户的会话信息;
B3)应用服务器请求所述移动平台推送消息给目标用户;
B4)所述移动平台根据所述目标用户查找对应的会话信息;
B5)所述移动平台通过用户登录所述移动终端的链路推送消息给所述目标用户;
B6)所述移动终端门户将消息转发给具体的应用,并逐层返回应答消息给所述应用服务器。
在本发明所述的跨移动终端的消息推送方法中,所述步骤C)进一步包括:
C1)应用服务器推送消息至移动平台;
C2)所述移动平台基于用户ID查找对应的会话信息,并返回未查找到所述会话信息;
C3)所述移动平台查找用户最后一次登录的移动终端信息,并查找对应的移动终端链路信息;
C4)判断是否找到所述对应的移动终端链路信息,如是,返回步骤B6);否则,执行步骤D)。
在本发明所述的跨移动终端的消息推送方法中,所述步骤D)进一步包括:
D1)移动平台将推送消息作为离线消息保存到数据库中;
D2)所述移动平台查看应用服务器的消息推送离线规则,并按照所述离线规则转发邮件至用户的邮箱或转发短信至用户的手机;
D3)所述移动平台返回推送消息应答给应用服务器;
D4)判断用户是否再次登录移动终端门户,如是,在成功登录后向所述移动平台请求读取离线消息,并执行步骤D5);否则,保持当前状态;
D5)所述移动平台读取数据库中离线消息返回给移动终端门户。
在本发明所述的跨移动终端的消息推送方法中,所述移动终端与所述服务器之间的链路为SSL链路。
本发明还涉及一种实现上述跨移动终端的消息推送方法的装置,包括:
登录判断单元:用于判断用户是否登录到服务器;
链路建立单元:用于使所述服务器通过移动终端与其之间建立的链路发送消息到所述移动终端;
查找单元:用于使所述服务器查找用户最后一次登录的移动终端,并判断所述移动终端与所述服务器之间是否存在链路;
离线消息转发单元:用于按照事先设定的离线规则将消息转发到特定位置。
在本发明所述的实现上述跨移动终端的消息推送方法的装置中,所述链路建立单元进一步包括:
启动及链路建立模块:用于使移动终端门户启动,并与移动平台建立链路;
登录及会话保存模块:用于使用户通过所述移动终端登录到移动平台,并由所述移动平台保存用户的会话信息;
消息推送请求模块:用于使应用服务器请求所述移动平台推送消息给目标用户;
会话信息查找模块:用于使所述移动平台根据所述目标用户查找对应的会话信息;
第一消息推送模块:用于所述移动平台通过用户登录所述移动终端的链路推送消息给所述目标用户;
第一应答消息返回模块:用于使所述移动终端门户将消息转发给具体的应用,并逐层返回应答消息给所述应用服务器。
在本发明所述的实现上述跨移动终端的消息推送方法的装置中,所述查找单元进一步包括:
第二消息推送模块:用于使应用服务器推送消息至移动平台;
信息查找返回模块:用于使所述移动平台基于用户ID查找对应的会话信息,并返回未查找到所述会话信息;
登录链路信息查找模块:用于使所述移动平台查找用户最后一次登录的移动终端信息,并查找对应的移动终端链路信息;
查找判断模块:用于判断是否找到所述对应的移动终端链路信息。
在本发明所述的实现上述跨移动终端的消息推送方法的装置中,所述离线消息转发单元进一步包括:
离线消息保存模块:用于使移动平台将推送消息作为离线消息保存到数据库中;
离线消息推送模块:用于使所述移动平台查看应用服务器的消息推送离线规则,并按照所述离线规则转发邮件至用户的邮箱或转发短信至用户的手机;
第二应答消息返回模块:用于使所述移动平台返回推送消息应答给应用服务器;
再次登录判断模块:用于判断用户是否再次登录移动终端门户,如是,在成功登录后向所述移动平台请求读取离线消息,并在未登录时保持当前状态;
消息读取返回模块:用于使所述移动平台读取数据库中离线消息返回给移动终端门户。
在本发明所述的实现上述跨移动终端的消息推送方法的装置中,所述移动终端与所述服务器之间的链路为SSL链路。
实施本发明的跨移动终端的消息推送方法及装置,具有以下有益效果:由于在线时,服务器通过移动终端与其之间建立的链路发送消息到移动终端,所以及推送消息及时;在离线状态时,在服务器侧不用关心用户的终端类型,服务器查找用户最后一次登录的移动终端,并在移动终端与服务器之间存在链路时,将消息推送到该移动终端;在最后一次登录的移动终端与服务器不存在链路时,按照事先设定的离线规则将消息转发到特定位置,这样不用显示用户时刻在线,同时确保了消息推送的及时性;所以其在线离线都能进行推送、能跨系统进行消息推送、推送及时。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明跨移动终端的消息推送方法及装置一个实施例中方法的流程图;
图2为所述实施例中服务器通过链路发送消息到移动终端的具体流程图;
图3为所述实施例中在线时应用服务器通过移动平台推送消息至移动终端的交互流程示意图;
图4是所述实施例中服务器查找用户最后一次登录的移动终端并查找链路的具体流程图;
图5是所述实施例中按照事先设定的离线规则将消息转发到特定位置的具体流程图;
图6是所述实施例中离线时应用服务器通过移动平台推送消息至移动终端的交互流程示意图;
图7是所述实施例中装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明跨移动终端的消息推送方法及装置实施例中,其跨移动终端的消息推送方法的流程图如图1所示。图1中,该方法包括:
步骤S01 判断用户是否登录到服务器:本步骤中,判断用户是否登录到服务器,这个服务器具体就是应用服务器。本步骤中,如果判断的结果为是,即用户在线,则执行步骤S02;否则,执行步骤S03。
步骤S02服务器通过移动终端与其之间建立的链路发送消息到移动终端:如果上述步骤S01的判断结果为是,则执行本步骤。本步骤中,服务器通过移动终端与其之间建立的链路发送消息到移动终端。这样保证用户在线时通过移动终端和服务器间的链路即时推送消息至移动终端上。
步骤S03 服务器查找用户最后一次登录的移动终端,并判断移动终端与服务器之间是否存在链路:如果上述步骤S01的判断结果为否,即用户离线,则执行本步骤。本步骤中,服务器查找用户最后一次登录的移动终端,并判断移动终端与服务器之间是否存在链路,如果判断的结果为是,则返回步骤S02;否则,执行步骤S04。值得一提的是,本步骤能够在用户离线时通过查找用户最后一次登录的移动终端(设备)进行消息推送,这样就不用限制用户时刻在线。
步骤S04按照事先设定的离线规则将消息转发到特定位置:如果上述步骤S03的判断结果为否,则执行本步骤。本步骤中,按照事先设定的离线规则将消息转发到特定位置,本实施例中,应用服务器侧不用关心用户的移动终端类型,应用服务器通过查找用户使用的设备类型选择合适的通知通道,降低了应用服务器的复杂度。此外,由于不用关心用户的移动终端类型,所以其可以跨系统进行消息推送。关于本实施例中的离线规则,稍后会进行详细描述。
对于本实施例而言,上述步骤S02还可进一步细化,其细化后的流程图如图2所示。图2中,步骤S02进一步包括:
步骤S21 移动终端门户启动,并与移动平台建立链路:本步骤中,移动终端门户启动,并与移动平台建立链路。本实施例中,移动终端与服务器之间的链路为SSL链路,SSL的链路为一长链路,通过心跳消息维护。
步骤S22 用户通过移动终端登录到移动平台,并由移动平台保存用户的会话信息:本步骤中,用户通过移动终端登录到移动平台,在移动平台侧保存了用户的会话信息,即用户与登录设备(移动终端)以及链路信息的映射关系。
步骤S23 应用服务器请求移动平台推送消息给目标用户:本步骤中,应用服务器请求移动平台推送消息给目标用户。
步骤S24 移动平台根据目标用户查找对应的会话信息:本步骤中,移动平台根据应用服务器需要推送的目标用户查找对应的会话信息。
步骤S25 移动平台通过用户登录移动终端的链路推送消息给目标用户:本步骤中,移动平台通过用户登录移动终端的链路推送消息给目标用户(移动终端用户)。
步骤S26 移动终端门户将消息转发给具体的应用,并逐层返回应答消息给应用服务器:本步骤中,移动终端门户将消息转发给具体的应用,并逐层返回应答消息给应用服务器。
本实施例中,用户在线时,应用服务器通过移动平台推送消息至移动终端的交互流程示意图如图3所示。
对于本实施例而言,上述步骤S03还可进一步细化,其细化后的流程图如图4所示。图4中,步骤S03进一步包括:
步骤S31应用服务器推送消息至移动平台:本步骤中,应用服务器推送消息至移动平台。
步骤S32 移动平台基于用户ID查找对应的会话信息,并返回未查找到会话信息:本步骤中,移动平台基于用户ID(编号)查找对应的会话信息,由于用户没有登录,该处查找不到对应的会话信息,移动平台将未查找到会话信息的结果返回。
步骤S33 移动平台查找用户最后一次登录的移动终端信息,并查找对应的移动终端链路信息:本步骤中,移动平台查找用户最后一次登录的移动终端信息,并查找对应的移动终端链路信息。
步骤S34判断是否找到对应的移动终端链路信息:本步骤中,判断是否找到对应的移动终端链路信息,如果判断的结果为是,则返回步骤S26,也即如果有用户最后一次登录的移动终端存在链路信息,则基于该链路推送消息至移动终端门户,移动终端门户转发消息给具体的应用,并逐层返回应答给应用服务器;如果判断的结果为否,则执行步骤S04。
对于本实施例而言,上述步骤S04还可进一步细化,其细化后的流程图如图5所示。图5中,步骤S04进一步包括:
步骤S41 移动平台将推送消息作为离线消息保存到数据库中:本步骤中,当用户最后一次登录的设备不存在链路信息时,则移动平台将推送消息作为离线消息保存到数据库中。
步骤S42移动平台查看应用服务器的消息推送离线规则,并按照离线规则转发邮件至用户的邮箱或转发短信至用户的手机:本步骤中,移动平台查看应用服务器的消息推送离线规则,并按照离线规则转发邮件至用户的邮箱或转发短信至用户的手机。也就是如果需要发送邮件则转发邮件至用户的邮箱,如果需要转发短信则发送短信至用户的手机。
步骤S43 移动平台返回推送消息应答给应用服务器:本步骤中,移动平台返回推送消息应答给应用服务器。
步骤S44判断用户是否再次登录移动终端门户:本步骤中,判断用户是否再次登录移动终端门户,如果判断的结果为是,则执行步骤S46;否则,执行步骤S45。
步骤S45保持当前状态:如果上述步骤S44的判断结果为否,则执行本步骤。本步骤中,保持当前状态。
步骤S46 在成功登录后向移动平台请求读取离线消息:如果上述步骤S44的判断结果为是,则执行本步骤。本步骤中,在成功登录后向移动平台请求读取离线消息。执行完本步骤,执行步骤S47。
步骤S47移动平台读取数据库中离线消息返回给移动终端门户:本步骤中,移动平台读取数据库中离线消息返回给移动终端门户。
本实施例中,用户离线时,应用服务器通过移动平台推送消息至移动终端的交互流程示意图如图6所示。图6中设备指的是移动终端。
本实施例还涉及一种实现上述跨移动终端的消息推送方法的装置,其结构示意图如图7所示。图7中,该装置包括登录判断单元1、链路建立单元2、查找单元3和离线消息转发单元4;其中,登录判断单元1用于判断用户是否登录到服务器;链路建立单元2用于使服务器通过移动终端与其之间建立的链路发送消息到移动终端,值得一提的是,移动终端与服务器之间的链路为SSL链路。查找单元3用于使服务器查找用户最后一次登录的移动终端,并判断移动终端与服务器之间是否存在链路;离线消息转发单元4用于按照事先设定的离线规则将消息转发到特定位置。
本实施例中,链路建立单元2进一步包括启动及链路建立模块21、登录及会话保存模块22、消息推送请求模块23、会话信息查找模块24、第一消息推送模块25和第一应答消息返回模块26;其中,启动及链路建立模块21用于使移动终端门户启动,并与移动平台建立链路;登录及会话保存模块22用于使用户通过移动终端登录到移动平台,并由移动平台保存用户的会话信息;消息推送请求模块23用于使应用服务器请求移动平台推送消息给目标用户;会话信息查找模块24用于使移动平台根据目标用户查找对应的会话信息;第一消息推送模块25用于移动平台通过用户登录移动终端的链路推送消息给所述目标用户;第一应答消息返回模块26用于使移动终端门户将消息转发给具体的应用,并逐层返回应答消息给应用服务器。
本实施例中,查找单元3进一步包括第二消息推送模块31、信息查找返回模块32、登录链路信息查找模块33和查找判断模块34;其中,第二消息推送模块31用于使应用服务器推送消息至移动平台;信息查找返回模块32用于使移动平台基于用户ID查找对应的会话信息,并返回未查找到所述会话信息;登录链路信息查找模块33用于使移动平台查找用户最后一次登录的移动终端信息,并查找对应的移动终端链路信息;查找判断模块34用于判断是否找到对应的移动终端链路信息。
本实施例中,离线消息转发单元4进一步包括离线消息保存模块41、离线消息推送模块42、第二应答消息返回模块43、再次登录判断模块44和消息读取返回模块45;其中,离线消息保存模块41用于使移动平台将推送消息作为离线消息保存到数据库中;离线消息推送模块42用于使移动平台查看应用服务器的消息推送离线规则,并按照离线规则转发邮件至用户的邮箱或转发短信至用户的手机; 第二应答消息返回模块43用于使移动平台返回推送消息应答给应用服务器;再次登录判断模块44用于判断用户是否再次登录移动终端门户,如是,在成功登录后向移动平台请求读取离线消息,并在未登录时保持当前状态;消息读取返回模块45用于使移动平台读取数据库中离线消息返回给移动终端门户。
总之,在本实施例中,提供了应用服务器跨移动终端进行消息推送的机制,屏蔽了由于移动终端差异化的推送机制对应用服务器的冲击,提供了用户在线和用户离线时进行消息推送机制,提供了转发邮件、转发短信、转服务器离线消息等离线策略供应用服务器选择;此外,大部分场景下不依赖于第三方的平台,降低了第三方渠道的不可靠性对本身系统的冲击。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。