消息推送方法及系统转让专利

申请号 : CN201610844591.X

文献号 : CN106254390A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蒙建康张永杰吕灼恒赵欢

申请人 : 曙光信息产业(北京)有限公司

摘要 :

本发明公开了一种消息推送方法及系统,该消息推送方法包括:建立服务器端与接收客户端的长链接以使服务器端与接收客户端通过通信协议进行通信;根据长链接将消息推送至接收客户端;以及确定消息的消息推送状态;其中,长链接为socket链接。本发明通过建立服务器端与接收客户端之间的长链接来实现服务器端向接收客户端推送消息,并通过确定消息推送状态来保证消息被推送至接收客户端,避免了不能保证消息被推送到手机上的问题;实现了在服务器端对消息进行管理,增加了信息安全性,并且降低了成本。

权利要求 :

1.一种消息推送方法,其特征在于,包括:建立服务器端与接收客户端的长链接以使所述服务器端与所述接收客户端通过通信协议进行通信;

根据所述长链接将消息推送至所述接收客户端;以及确定消息的消息推送状态;

其中,所述长链接为socket链接。

2.根据权利要求1所述的消息推送方法,其特征在于,在建立服务器端与接收客户端的长链接之后,还包括:保持所述长链接以保持所述服务器端与所述接收客户端进行通信。

3.根据权利要求1所述的消息推送方法,其特征在于,确定消息的消息推送状态,包括:返回消息接收成功指令以使所述服务器端确定所述消息推送状态。

4.根据权利要求2所述的消息推送方法,其特征在于,在所述长链接断开的情况下,重新建立所述服务器端与所述接收客户端的长链接。

5.根据权利要求1所述的消息推送方法,其特征在于,还包括:接收所述消息;

对所述消息进行自定义封装;以及

在所述接收客户端对自定义封装后的消息进行显示。

6.根据权利要求1所述的消息推送方法,其特征在于,建立服务器端与接收客户端的长链接,包括:对指定端口进行监听以使所述服务器端与所述接收客户端进行通信。

7.根据权利要求6所述的消息推送方法,其特征在于,在对指定端口进行监听之后,还包括:所述接收客户端对所述指定端口发送长链接请求;

所述服务器端接收到所述长链接请求后,返回请求成功指令;以及在所述接收客户端接收到所述请求成功指令后,生成所述服务器端与所述接收客户端的长链接。

8.根据权利要求1所述的消息推送方法,其特征在于,在根据所述长链接将消息推送至所述接收客户端之前,还包括:对所述消息进行一次封装。

9.根据权利要求1所述的消息推送方法,其特征在于,所述通信协议为XMPP协议或MQTT协议。

10.一种消息推送系统,包括服务器端与接收客户端,其特征在于,还包括:建立链接模块,用于建立服务器端与接收客户端的长链接以使所述服务器端与所述接收客户端通过通信协议进行通信;

其中,所述长链接为socket链接;以及所述服务器端用于根据所述长链接将消息推送至所述接收客户端,及确定所述消息的消息推送状态。

说明书 :

消息推送方法及系统

技术领域

[0001] 本发明涉及互联网通信技术领域,具体来说,涉及一种向安卓设备推送消息的消息推送方法及系统。

背景技术

[0002] 消息推送,是在互联网上通过定期传送用户需要的信息来减少信息过载的一项技术。消息推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间。它根据用户的兴趣来搜索、过滤信息,并将信息定期推送给用户,帮助用户高效率地发掘有价值的信息。
[0003] 随着移动互联网的飞速发展,推送功能在手机应用中越来越重要,安卓手机作为一种标志性的手机产物,本身对消息推送功能具有良好的支持。现有的在安卓设备上常用的消息推送方法主要有以下几种:
[0004] 轮询方式:应用程序阶段性的与服务器进行连接并主动查询是否有新的消息到达。这种方法要求安卓设备必须能够实现与服务器之间的通信,而且还需要考虑轮询的频率,如果太慢可能导致某些消息的延迟,如果太快,则会大量消耗网络带宽和电池。
[0005] SMS(Short Message Service)方式:在安卓平台上,可以通过拦截SMS消息并通过解析消息内容来了解服务器的意图,进而获取其显示内容进行处理。这种方法的好处是,可以实现实时操作。但目前很难找到免费的短消息发送网关来实现这种方法,因此需要向移动运营商缴纳相应的费用才可以实现,而且成本较高。
[0006] 持久连接方式:与服务器之间建立一个socket长链接,当有消息到达时,直接向客户端推送。此方案可以解决由轮询带来的性能问题,但是由于需要维持一个长链接,对于手机电池的消耗还是比较多。服务器对于消息的推送并不能百分之百推送到手机上。
[0007] 针对相关技术中的上述问题,目前尚未提出有效的解决方案。

发明内容

[0008] 针对相关技术中的上述问题,本发明提出一种消息推送方法及系统,能够确定消息推送状态,避免现有技术中的持久连接方式不能保证消息被推送到手机上的问题,还能够降低成本。
[0009] 本发明的技术方案是这样实现的:
[0010] 根据本发明的一个方面,提供了一种消息推送方法,包括:建立服务器端与接收客户端的长链接以使服务器端与接收客户端通过通信协议进行通信;根据长链接将消息推送至接收客户端;以及确定消息的消息推送状态;其中,长链接为socket链接。
[0011] 优选地,在建立服务器端与接收客户端的长链接之后,还包括:保持长链接以保持服务器端与接收客户端进行通信。
[0012] 优选地,确定消息的消息推送状态,包括:返回消息接收成功指令以使服务器端确定消息推送状态。
[0013] 优选地,在长链接断开的情况下,重新建立服务器端与接收客户端的长链接。
[0014] 优选地,还包括:接收消息;对消息进行自定义封装;以及在接收客户端对自定义封装后的消息进行显示。
[0015] 优选地,建立服务器端与接收客户端的长链接,包括:对指定端口进行监听以与接收客户端进行通信。
[0016] 优选地,在对指定端口进行监听之后,还包括:接收客户端对指定端口发送长链接请求;服务器端接收到长链接请求后,返回请求成功指令;以及在接收客户端接收到请求成功指令后,生成服务器端与接收客户端的长链接。
[0017] 优选地,在根据长链接将消息推送至接收客户端之前,还包括:对消息进行一次封装。
[0018] 优选地,通信协议为XMPP协议或MQTT协议。
[0019] 根据本发明的另一方面,提供了一种消息推送系统,包括:建立链接模块,用于建立服务器端与接收客户端的长链接以使服务器端与接收客户端通过通信协议进行通信;其中,长链接为socket链接;以及服务器端用于根据长链接将消息推送至接收客户端,及确定消息的消息推送状态。
[0020] 本发明通过建立服务器端与接收客户端之间的长链接来实现服务器端向接收客户端推送消息,并通过确定消息推送状态来保证消息被推送至接收客户端,避免了不能保证消息被推送到手机上的问题;实现了在服务器端对消息进行管理,增加了信息安全性,并且降低了成本。

附图说明

[0021] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022] 图1是根据本发明实施例的消息推送方法的流程图;
[0023] 图2是根据本发明具体实施例的消息推送方法的服务器端初始化长链接的流程图;
[0024] 图3是根据本发明具体实施例的消息推送方法的接收客户端初始化长链接的流程图;
[0025] 图4是根据本发明具体实施例的消息推送方法的服务器端向接收客户端推送消息的流程图。

具体实施方式

[0026] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
[0027] 根据本发明的实施例,提供了一种消息推送方法。
[0028] 如图1所示,根据本发明实施例的消息推送方法包括以下步骤:
[0029] 步骤S101,建立服务器端与接收客户端的长链接以使服务器端与接收客户端通过通信协议进行通信,其中的长链接为socket链接;
[0030] 步骤S103,根据长链接将消息推送至接收客户端;以及
[0031] 步骤S105,确定消息的消息推送状态。
[0032] 上述技术方案,通过建立服务器端与接收客户端之间的长链接来实现服务器端向接收客户端推送消息,并通过确定消息推送状态来保证消息被推送至接收客户端,避免了现有技术中的持久连接方式不能保证消息被推送到手机上的问题;能够在服务器端对消息进行管理,增加了信息安全性,并且降低了成本。
[0033] 在一个实施例中,在步骤S101之后还包括以下步骤:保持长链接以保持服务器端与接收客户端进行通信。
[0034] 进一步地,在长链接断开的情况下,重新建立服务器端与接收客户端的长链接。通过例如断线重连等机制,来维持服务器端与接收客户端之间的长链接,进一步保证了消息能够被推送至相应的接收客户端。
[0035] 在一个实施例中,步骤S105包括以下步骤:返回消息接收成功指令以使服务器端对消息状态进行查询。通过上述消息到达反馈机制来确定消息推送状态。
[0036] 在一个实施例中,在步骤S103之前还包括以下步骤:对消息进行一次封装。
[0037] 在一个实施例中,在步骤S103之后还包括以下步骤:
[0038] 接收消息;
[0039] 对消息进行自定义封装;以及
[0040] 在接收客户端对自定义封装后的消息进行显示。
[0041] 其中,自定义封装可以是asmack封装。接收客户端可以根据实际需求对接收到的消息进行自定义封装,以制定不同的展示风格来显示消息。
[0042] 在一个实施例中,步骤S101包括:对指定端口进行监听以与接收客户端进行通信。
[0043] 进一步地,在对指定端口进行监听之后,还包括以下步骤:
[0044] 接收客户端对指定端口发送长链接请求;
[0045] 服务器端接收到长链接请求后,返回请求成功指令;以及
[0046] 在接收客户端接收到请求成功指令后,生成服务器端与接收客户端的长链接。
[0047] 通过对指定端口进行监听建立服务器端与接收客户端的长链接,并通过该指定端口进行服务器端与接收客户端之间的通信。通过服务器端与接收客户端之间的通信可以实现消息推送,还可以实现对接收客户端的注册和身份认证。
[0048] 在一个实施例中,上述服务器端与接收客户端进行通信的通信协议可以是XMPP(可扩展通讯和表示协议)或MQTT(Message Queuing TelemetryTransport,消息队列遥测传输)协议中的一种。
[0049] 下面结合图2、图3、和图4对本发明具体实施例的消息推送方法进行说明,在本实施例中,采用XMPP协议实现服务器端向接收客户端的消息推送。如图2所示,为服务器端初始化长链接的流程图。当服务器端开启后,会首先进入步骤S201开启一个XMPP服务来监听指定端口,用于与接收客户端的XMPPConnection类进行通信以进行用户注册和身份认证,并发送推送通知消息。然后进入步骤S203服务器端接收由接收客户端发送的socket链接请求。当服务器端接收到由接收客户端发送的socket链接请求后,进入步骤S205,建立一个长链接会话。在本实施例中,上述指定端口默认为5222端口。
[0050] 如图3所示,为接收客户端初始化长链接的流程图。当接收客户端启动后,首先进入步骤S301,利用asmack的XMPP链接工具包,向服务器端的指定端口发送socket链接请求。然后进入步骤S303接收服务器端的请求成功反馈。当接收到服务器端的请求成功反馈后进入步骤S305,与服务器端形成一个长链接用来接收服务器端推送的消息。
[0051] 图4为服务器端向接收客户端推送消息的流程图,具体包括以下步骤:步骤S401,服务器端接收消息推送请求;步骤S403,当服务器端收到消息推送请求后,将待推送的消息封装成XMPP协议,并查找当前处于链接状态的接收客户端,把消息推送到各个处于链接状态的接收客户端上;步骤S405,接收客户端收到由服务器端推送来的消息,并对此消息进行自定义包装后,显示在接收客户端的通知栏上。
[0052] 在本实施例中,接收客户端为安卓设备。通过采取长链接的方式,并利用开源的消息推送框架AndroidPn做为服务器端,以及利用专门处理XMPP协议的asmack开发包实现接收客户端对消息的接收和处理,实现了向安卓设备推送消息的功能。
[0053] 根据本发明的实施例,还提供了一种消息推送系统,包括服务器端、接收客户端以及建立链接模块;建立链接模块用于建立服务器端与接收客户端的长链接以使服务器端与接收客户端通过通信协议进行通信;其中,长链接为socket链接;以及服务器端用于根据长链接将消息推送至接收客户端,及确定消息的消息推送状态。
[0054] 综上所述,借助于本发明的上述技术方案,通过建立服务器端与接收客户端之间的长链接来实现服务器端向接收客户端推送消息,并通过确定消息推送状态来保证消息被推送至接收客户端,避免了现有技术中的持久连接方式不能保证消息被推送到手机上的问题,能够在服务器端对消息进行管理,增加了信息安全性,并且降低了成本;通过接收客户端根据实际需求对消息进行自定义封装,能够制定不同的展示风格来显示消息。
[0055] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。