一种本地离线推送的实现方法、装置及系统的制作方法

文档序号:9814321阅读:279来源:国知局
一种本地离线推送的实现方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及通信技术领域,具体涉及一种本地离线推送的实现方法、装置及系统。
【背景技术】
[0002]推送是一种建立在客户机与服务器上的机制,由服务器主动将信息发送至客户机的技术。随着互联网技术的发展及移动应用程序的种类增加,越来越多的用户通过移动设备使用移动应用程序来满足其使用需要,例如,游戏方面的移动应用程序、生活方面的移动应用程序、学习工作方面的移动应用程序、休闲旅游方面的移动应用程序等等。则为了实现移动应用程序的业务信息或其它相关信息能够实时、精确地传递消息给有效用户群,消息推送是一个最好的方式。
[0003]现有技术中,一般是通过移动应用程序的引擎提供的本地推送接口实现服务器对客户机的消息推送。因此,上述推送方式容易导致无论是在用户在线时(也即用户使用移动应用程序的过程中),还是在用户离线时(也即用户退出移动应用程序后或移动应用程序退到后台),只要用户注册,都会向用户推送消息,对用户的使用体验造成了严重的影响,特别是在用户利用移动应用程序进行游戏或者学习或者工作等需要专注力的过程中,消息的推送很容易分散用户的专注力,对使用中的用户造成不良影响。并且,推送的消息可能是重复的,这样导致用户多次接收同样的推送消息,避免不必要的操作及进一步影响用户体验。

【发明内容】

[0004]本发明的目的是为了解决上述现有技术的缺点和不足,提供一种本地离线推送的实现方法、装置及系统,实现只有在用户不在线的情况下才进行消息推送,避免了消息推送对在线用户的使用体验的影响,以为用户带来更好的使用体验;同时能够替代服务器在同一时刻向所有用户推送相同消息,有利于减轻服务器的负担。
[0005]—种本地离线推送的实现方法,包括以下步骤:
[0006]步骤S1:判断用户是否在线;如果用户离线,则执行步骤S4?步骤S6;如果用户在线,则判断推送事件是否发生,如果推送事件不发生,则不执行任何操作;如果推送事件发生,继续执行下一步骤;
[0007]步骤S2:接收推送事件并添加至本地缓存中;
[0008]步骤S3:继续判断用户是否还在线,如果用户还在线且推送事件继续发生,则返回步骤S2;否则,继续执行下一步骤:
[0009]步骤S4:遍历添加至本地缓存中的所有推送事件;
[0010]步骤S5:调用引擎接口,通过引擎接口注册所有推送事件;
[0011 ]步骤S6:推送所有推送事件。
[0012]由上述技术方案可知,本发明通过在用户在线时将推送事件添加至本地缓存中,同时通过用户离线时实现本地缓存中的推送事件的推送,由此实现只有在用户不在线的情况下才进行消息推送,避免了消息推送对在线用户的使用体验的影响,以为用户带来更好的使用体验;同时能够由所有用户的客户机替代服务器在同一时刻向所有用户推送相同消息,有利于减轻服务器的负担。并且,通过使用本地缓存实现本地离线推送,能够满足了策划的不同需要,通过设定条件过滤掉相同类型的推送事件。
[0013]进一步,所述步骤S2还包括步骤:记录并保存每一推送事件的推送剩余时间、及每一推送事件添加至本地缓存时的当前时间;
[0014]及所述步骤S4还包括步骤:
[0015]记录并保存用户离线时的本地时间;
[0016]分别更新并保存每一推送事件的最新推送剩余时间,最新推送剩余时间=推送剩余时间一当前时间一本地时间;
[0017]以及所述步骤S6中是根据每一推送事件的最新推送剩余时间分别推送所有推送事件,其具体包括以下步骤:分别判断每一推送事件的最新推送剩余时间的值是否大于O;如果是,则推送最新推送剩余时间的值大于O的推送事件;否则,删除本地缓存中的最新推送剩余时间的值小于或等于O的推送事件。
[0018]通过上述各个步骤的进一步完善,利用最新推送剩余时间区别已完成推送的事件和未完成推送的事件,有效避免了对推送事件的重复推送,并及时更新了本地缓冲中的推送事件,进一步实现推送事件有效地离线推送。
[0019]进一步,所述步骤S6还包括步骤:完成最新推送剩余时间的值大于O的推送事件的推送后,更新所有推送事件的最新推送剩余时间。通过此步骤,进一步更新刚被推送出去的推送事件的最新推送剩余时间,从而及时保证刚推送出去的推送事件不会被重复推送,从而有利于保证推送的准确性和效率。
[0020]进一步,所述步骤S2中还记录并保存每一推送事件的推送key。通过推送key有利于对每一推送事件进一步进行识别,并方便了推送事件的删除操作。
[0021]进一步,本发明的本地离线推送的实现方法还包括步骤S7:判断用户离线后是否再次上线;
[0022]如果是,则根据推送key删除所有已经注册的推送事件,同时删除本地缓存中最新推送剩余时间的值小于或等于O的推送事件,并返回步骤SI;
[0023]如果不是,判断推送事件是否发生,如果不发生,则不执行任何操作;如果发生,则返回步骤S2。
[0024]通过步骤S7,有利于用户每次上线和下线时及时更新本地缓存中的推送事件的数据,从而进一步保证了离线推送的准确性和效率。
[0025]相应地,本发明还提供了一种能够实现上述本地离线推送的实现方法的本地离线推送的装置。所述本地离线推送的装置包括用户状态判断模块、推送事件判断模块、缓存模块、遍历模块、引擎接口模块、注册模块及推送模块;
[0026]所述用户状态判断模块,用于判断用户是否在线,如果判断得到用户在线,则发送一判断指令至推送事件判断模块;如果判断得到用户离线,则发送一遍历指令至所述遍历丰旲块;
[0027]所述推送事件判断模块,用于接收所述判断指令后,判断推送事件是否发生,如果判断得到推送事件发生,则发送一接收指令至缓存模块,否则,不执行任何操作;
[0028]所述缓存模块,用于接收所述接收指令后,接收并添加由服务器推送的推送事件;
[0029]所述遍历模块,用于接收所述遍历指令后,遍历添加至所述缓存模块中的推送事件,并发送一连接指令至引擎接口模块;
[0030]所述引擎接口模块,用于接收所述连接指令后,连接所述注册模块和缓存模块,并发送一连接成功指令至注册模块;
[0031]所述注册模块,用于接收所述连接成功指令后,调用所述引擎接口模块,并通过引擎接口模块注册所述缓存模块中的所有推送事件,并发送一开始指令至推送模块;
[0032]所述推送模块,用于接收到所述开始指令后,推送所有推送事件。
[0033]进一步,所述缓存模块包括缓存子模块和记录存储子模块;
[0034]所述缓存子模块,用于接收所述接收指令后,接收并添加由服务器推送的推送事件;
[0035]所述记录存储子模块,用于记录并保存每一推送事件的推送剩余时间、及每一推送事件添加至缓存子模块时的当前时间;
[0036]及所述遍历模块包括离线时间记录子模块、遍历子模块及刷新子模块;
[0037]所述离线时间记录子模块,用于接收所述遍历指令后,记录并保存用户离线时的本地时间,并发送一刷新指令至刷新子模块;
[0038]所述遍历子模块,用于接收遍历指令后,遍历添加至所述缓存模块中的推送事件,并发送一连接指令至引擎接口模块;
[0039]所述刷新子模块,用于接收刷新指令后,从记录存储子模块和离线时间记录子模块分别获取每一推送事件的当前时间和本地时间,并通过公式最新推送剩余时间=推送剩余时间一当前时间一本地时间计算得到最新推送剩余时间,实现对每一推送事件的最新推送剩余时间的更新并保存;
[0040]以及所述推送模块包括剩余时间判断子模块、推送子模块和删除子模块;
[0041]所述剩余时间判断子模块,用于获取刷新子模块中的每一推送事件的最新推送剩余时间,并分别判断分别判断每一推送事件的最新推送剩余时间的值是否大于0,如果是,则发送一个别推送指令至推送子模块;否则,发送一删除指令至删除子模块;
[0042]所述推送子模块,用于接收到所述个别推送指令和开始指令后,推送最新推送剩余时间的值大于O的推送事件;
[0043]所述删除子模块,用于接收到删除指令后,删除所述缓存模块中最新推送剩余时间的值小于或等于O的推送事件。
[0044]进一步,所述推送子模块还用于完成最新推送剩余时间的值大于O的推送事件的推送后,发送一更新指令至所述刷新子模块;所述刷新子模块还用于接收到所述更新指令后,更新所有推送事件的最新推送剩余时间。
[0045]进一步,本发明本地离线推送的装置还包括一删除模块。所述缓存模块的记录存储子模块还用于记录并保存每一推送事件的推送key;所述用户状态判断模块还用于判断用户离线后是否再次上线,如果是,则用户状态判断模块发送一删除指令至所述删除模
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1