关注主播上线提醒方法及系统与流程

文档序号:11156849
关注主播上线提醒方法及系统与制造工艺

本发明涉及互联网消息推送领域,尤其涉及一种关注主播上线提醒方法及系统。



背景技术:

传统方案中关于关注主播上线提醒方法中,通常是通过心跳或者第三方推送来推送消息。当接收到服务器传送过来的消息后客户端进行提示关注主播上线提醒。传统方案有一个很大的缺陷。对于使用心跳保持客户端与服务器的长连接的方案中,当客户端在后台运行的时候,系统会发现客户端在后台一直发送心跳操作,所以系统很可能会将该应用进行杀掉。这样就中断了客户端和服务器的连接,一旦客户端和服务器的连接中断,此时客户端就无法接收到服务器推送过来的消息了。

对于使用第三方推送的方案,由于第三方推送的SDK做了很多的保活优化手段,确保第三方推送SDK能够保活,不会轻易被系统杀死。但是在部分手机上依旧会被系统杀死,导致推送消息无法进行接收。



技术实现要素:

本发明要解决的技术问题在于针对现有技术中推送消息容易被系统杀死的缺陷,提供一种提高消息推送成功率的关注主播上线提醒方法及系统。

本发明解决其技术问题所采用的技术方案是:

提供一种关注主播上线提醒方法,包括以下步骤:

通过集成多个消息推送平台向客户端推送用户所关注主播的上线消息,该上线消息为具有唯一标识的上线消息;

判断该上线消息是否已经存在于指定存储空间,若是,则舍弃该上线消息;若否,则将该上线消息发送到消息通知模块,并将该上线消息存储到所述指定存储空间;

消息通知模块通过通知栏发送该上线消息至客户端。

本发明所述的方法中,该方法还包括步骤:

若客户端的消息推送进程被系统关闭,则重新向客户端推送重新启动的模块。

本发明所述的方法中,所述上线消息包括唯一标识和消息内容,消息内容相同的上线消息的唯一标识是相同的。

本发明所述的方法中,所述指定存储空间为SharedPreferences存储模块,将上线消息保存到SharedPreferences的键值对中;其中键是上线消息的唯一标识,值是消息的具体内容。

本发明所述的方法中,具体通过安卓系统中的EventBus来发送上线消息。

本发明所述的方法中,若上线消息推送失败,则通过服务器以向用户发送短信消息的方式通知客户。

本发明所述的方法中,在“重新向客户端推送重新启动消息推送”之前还包括步骤:

在Android系统中注册静态广播,接收网络变化的回调消息;

根据接收的网络变化的回调消息判定网络状态,若网络连接正常,则重新向客户端推送重新启动消息推送模块;若网络断开连接了,则不做任何处理。

本发明还提供一种关注主播上线提醒系统,包括:

平台集成模块,用于集成多个消息推送平台向客户端推送用户所关注主播的上线消息,该上线消息为具有唯一标识的上线消息;

消息过滤模块,用于判断该上线消息是否已经存在于服务器的指定存储空间,若是,则舍弃该上线消息;若否,则将该上线消息发送到消息通知模块,并将该上线消息存储到所述指定存储空间;

消息通知模块,用于通过通知栏发送该上线消息至客户端。

本发明所述的系统中,该系统还包括:

推送恢复模块,用于在客户端的消息推送进程被系统关闭时,重新向客户端推送重新启动的模块。

本发明产生的有益效果是:本发明通过集成多推送平台向客户端推送用户所关注主播的上线消息,极大的提高了常规方案消息到达率。通过对消息的过滤,避免了消息的重复发送。

进一步地,使用SharedPreferences的键值对来存储数据,巧妙的使用消息唯一标识和键值对中的键的唯一性,能够提高识别消息是否处理过的效率。

进一步地,通过EventBus来进行消息转发,屏蔽了常规广播消息的很多弊端,优势明显。极端情况下无法进行推送时,使用短信对该方案进行补充,确保消息一定能够到达用户。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明实施例注主播上线提醒方法的流程图;

图2是本发明另一实施例注主播上线提醒方法的流程图;

图3是本发明实施例广播监听的流程图;

图4是本发明实施例注主播上线提醒系统的结构示意图;

图5是本发明另一实施例注主播上线提醒系统的结构示意图。

图6是本发明第三实施例注主播上线提醒系统的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

先对所涉及的专业名词进行解释:

SharedPreferences:是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置。

SDK:软件开发工具包(SDK:Software Development Kit)一般是软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。

EventBus:一种消息传输总线。

本发明提出了一套提高消息推送成功率的方案,通常较常规做法是集成一个推送平台,但是无法保证该推送平台不会被系统杀死。本发明中集成多个推送平台,将多个推送平台全部集成到应用中,然后对推送消息进行过滤处理,任何时候只要有一个推送平台是存活状态,就能够接受到推送消息。这样就能够很大程度上的提升消息的到达率,从而能够及时的将主播上线的消息推送给用户。

在某些极端情况下如果发现所有的推送平台都被系统杀死掉了,推送都是失败的时候,会通过短信形式来告知用户主播上线的消息。

通过本发明的技术实施,基本可以确保消息能够100%被用户接收到,这样就能够保证用户不会错过所关注主播的上线消息。

如图1所示,本发明的一个实施例关注主播上线提醒方法主要包括以下步骤:

S101、通过集成多个消息推送平台向客户端推送用户所关注主播的上线消息,该上线消息为具有唯一标识的上线消息;

S102、判断该上线消息是否已经存在于服务器的指定存储空间,若是,则转入执行步骤S104;若否,则转入执行步骤S103;

S103、舍弃该上线消息;

S104、将该上线消息发送到消息通知模块,并将该上线消息存储到所述指定存储空间;

S105、消息通知模块通过通知栏发送该上线消息至客户端。

其中,步骤S101中,对于多个消息推送平台的集成,不同平台集成方式大同小异,本发明实施例列举其中一种举例说明(个推推送),其他集成方式与此类似方式进行集成。本发明通过集成多个推送平台的SDK来提高消息推送的成功率,通过多个SDK同时对消息进行推送,任何时候只要系统中任何一个推送SDK是存活状态,就能够接收到服务器推送过来的主播上线的消息。

本发明由于集成了多个推送SDK,每个SDK都有自己特有的一套保活方式,当其中一个推送SDK失效后,只要有任何一个推送SDK是存活状态,依旧能够很好的接受到服务器传递过来的主播上线的消息信息。

由于集成方法是一个公开通用的技术,本发明实施例中对此仅作简要概括:

1)在开发者平台创建应用说明

2)资源文件导入和配置文件引入

3)配置相关权限信息

4)导入通知栏图标

5)初始化SDK

6)资源精简配置

7)确认Gradle配置

8)测试

整个集成过程大体分为上述的8个步骤,每个步骤都完成其中的相应过程,具体每一步骤的细节针对每个平台可能会有一定的差异性,这些集成过程都是公开的方法。按照对应的平台的集成文档对此进行集成处理即可。

步骤S102-104是对信息的过滤。为了提高推送的成功率,本发明实施例中每次消息都是通过多个平台进行统一发送的。这样就会造成一个问题,那就是每次都可能接收到很多条重复的消息。因此需要对多条重复的消息进行过滤处理。

过滤消息方法具体为:

为了能够将消息进行过滤处理,本发明实施例中设计消息的时候给消息加入了一个tag标签,这个tag标签用于唯一表示一条消息。

消息的结构体形式如下:

Tag:表示消息的标签,用于唯一表示一条消息,不同消息的tag是不同的,相同消息的tag是相同的。

Message:表示消息内容

由于同时集成了多个推送模块,并且消息是推送模块进行同时发送的。也就是说我们可能在同一时间内同时收到很多条相同的消息。

为了能够用于区分消息是否被发送过,可将已经处理过的消息会被保存到SharedPreferences存储的键值对中。此处对于键值对的设计有一定的巧妙性,优于消息的Tag是唯一的,在键值对的存储中键也需要是唯一的。这样就刚好可以将已经处理过的消息通过SharedPreferences来进行存储,其中SharedPreferences存储的键是消息的Tag,值是消息Message的内容。

当消息过来的时候,首先会去SharedPreferences中存储的键值对中去查询Tag所对应的消息。

如果通过键值对获取到了Tag所对应的消息,说明该消息已经被处理过。此时可以舍弃掉该条消息,不对该条消息进行处理。

如果通过键值对获取Tag所对应的消息为空,说明该消息没有被处理过。此时我们就可以将该消息发送到UI层进行通知的弹出等处理。

本发明实施例使用SharedPreferences的键值对来存储数据,巧妙的使用消息tag和键值对中的键的唯一性,能够提高识别消息是否处理过的效率。

步骤S105是消息的发送,主要是将消息转发到UI层(User Interface)来进行处理,常规的消息转发的方式通常是广播形式来进行转发。本发明则优选通过EventBus来进行转发。

传统广播转发消息存在的问题:

1、广播消息的转发,消息无法保证及时到达,会存在一定的延时性。由于系统所有的广播都是通过一个消息处理模块进行处理的,如果系统中广播消息过多的时候,就会出现消息阻塞,导致消息到达速度慢的问题。

2、广播下次的转发使用起来复杂,广播转发一定存在三个部分,其一是发送消息,其二是注册消息,其三是接受消息。这三个部分全部进行整合后才能够正确的接受到广播发送过来的消息。使用起来步骤较多且复杂。

选择EventBus的优势:

1、EventBus传递消息方便快捷,使用起来非常简洁。

2、EventBus仅仅处理自己发送模块发送的消息,所有EventBus消息处理的数量上来说是小于广播消息的处理数量的,所以速度上会比广播快。

3、Event不需要注册,消息的接收和发送的绑定关系是通过消息体来进行直接绑定的,也就是说发送模块只需要关注发送任务,接收模块只需要关注接收和处理任务,使得整个代码可维护性会更高。

使用EventBus来发送消息是通过sendEvent函数来进行消息的发送的。接收函数是onEventHandler来接收处理发送过来的消息体。

当接收到主播上线的消息后,就可以通过通知栏发送一条主播上线的消息给用户,提示用户主播上线的消息。

本发明实施例通过EventBus来进行消息转发,屏蔽了常规广播消息的很多弊端,优势明显。

如图2所示,本发明实施例还包括推送恢复步骤,具体为:

S106、判断客户端的消息推送进程是否被系统关闭;若是,则执行步骤S107;

S107、重新向客户端推送重新启动的模块。即激发客户端的消息推送进程重新开启。

推送恢复的主要功能是当系统将推送模块杀死的时候,找机会将推送SDK重新启动。

由于推送一定会使用到网络,所以上述推送恢复步骤主要功能是通过监听系统网络变化,如果方向系统网络链接上的时候会主动再次启动推送SDK,这样就能够大大的提升推送SDK长期存活的概率。

如图3所示,在步骤S107之前还包括步骤:

S301、在Android系统中注册静态广播,接收网络变化的回调消息;

S302、根据接收的网络变化的回调消息判定网络状态,若网络断开连接了,则不做任何处理;若网络连接正常,则执行步骤S303;

S303、重新向客户端推送重新启动消息推送模块;

接下来详细描述上述的执行流程:

步骤S301主要为广播的监听:

在Android系统中广播分为静态广播和动态广播两种类型,

静态广播:可以在应用程序未启动的时候接受和处理广播任务。

动态广播:必须得要应用程序启动的时候才能够接收,应用程序退出了就不能接收了。

由于本发明目的期望最大程度上的激活推送SDK,所以本发明实施例选用静态广播来进行注册。

步骤S302主要判断网络连接状态:

注册网络变化的广播后,就能够接收到网络变化的回调消息。系统将所有网络信息封装到NetworkInfo类中,NetworkInfo类包含了当前网络的相关信息。接收到网络变化的回调消息后,可以去判定网络状态。

判断网络状态的方法是调用NetworkInfo中的isConnected方法来判定当前网络是否连接状态。如果isConnected返回的是真,说明网络链接上了,此时我们需要重启推送SDK框架。如果isConnected返回的是假,说明此时网络断开连接了,此时可不做任何处理。

步骤S303主要为重启推送SDK:

如果检测到网络连接上我们需要重启推送SDK,推送SDK模块如果启动状态下,我们再次调用启动函数startPush不会再次重启而是继续运行。如果推送SDK模块处于停止状态下,调用startPush,此时会启动该推送SDK模块。

通过推送恢复的设计,能够将被系统杀死的推送进程进行再次激活,这种激活方式可以确保推送SDK能够再次被使用,大大提高了消息传递的成功率。

极端情况下无法发送消息时的处理方案:如果在某些极端情况下导致上述推送SDK全军覆没时,客户端推送SDK停止运行的时候,服务器端发送推送请求,由于没有接收到SDK相关的反馈信息,服务器端会有推送超时信息接收。此时服务器就知道整个过程是失败的。如果失败了,此时会通过服务器来向用户发送短信消息的方式进行通知,确保主播上线消息能够100%到达用户。

此部分仅仅作为本发明的辅助处理方案,确保能够在极端情况下导致无法接收到消息的时候,还可以通过短信通知的方式来告知用户主播上线的消息。

为实现上述实施例的关注主播上线提醒方法,本发明还提供了关注主播上线提醒系统,如图4所示,包括:

平台集成模块41,用于集成多个消息推送平台向客户端推送用户所关注主播的上线消息,该上线消息为具有唯一标识的上线消息;

消息过滤模块42,用于判断该上线消息是否已经存在于服务器的指定存储空间,若是,则舍弃该上线消息;若否,则将该上线消息发送到消息通知模块,并将该上线消息存储到所述指定存储空间;

消息通知模块43,用于通过通知栏发送该上线消息至客户端。

如图5所示,在上述实施例的基础上,该系统还包括:

推送恢复模块44,用于在客户端的消息推送进程被系统关闭时,重新向客户端推送重新启动的模块。

如图6所示,在上述实施例的基础上,该系统还包括短消息发送模块45,用于在上线消息推送失败时,通过服务器以向用户发送短信消息的方式通知客户。

综上,本发明将多推送方案同时集成,极大的提高了常规方案消息到达率;进一步地,使用SharedPreferences的键值对来存储数据,巧妙的使用消息tag和键值对中的键的唯一性,能够提高识别消息是否处理过的效率。进一步地,通过EventBus来进行消息转发,屏蔽了常规广播消息的很多弊端,优势明显;且在极端情况下无法进行推送时,使用短信对整个方案进行补充,确保消息一定能够到达用户。

应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1