CN110233883A - 推送消息的处理方法、装置、服务器和存储介质 - Google Patents
推送消息的处理方法、装置、服务器和存储介质 Download PDFInfo
- Publication number
- CN110233883A CN110233883A CN201910440472.1A CN201910440472A CN110233883A CN 110233883 A CN110233883 A CN 110233883A CN 201910440472 A CN201910440472 A CN 201910440472A CN 110233883 A CN110233883 A CN 110233883A
- Authority
- CN
- China
- Prior art keywords
- message
- push
- mobile terminal
- platform
- origination
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000006243 chemical reaction Methods 0.000 claims abstract description 81
- 238000012545 processing Methods 0.000 claims abstract description 36
- 238000012546 transfer Methods 0.000 claims abstract description 5
- 238000000034 method Methods 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000007812 deficiency Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000007739 conversion coating Methods 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及数据传输优化技术领域,尤其涉及一种推送消息的处理方法、装置、服务器和存储介质,包括:从消息服务器下载原始消息,并将所述原始消息写入消息队列,其中,所述消息队列存储于推送平台的数据接入层;读取所述消息队列中的原始消息,并通过所述推送平台的数据转换层对所述原始消息进行解析和处理得到推送消息;获取目标移动终端的设备类型,将所述设备类型和所述推送消息发送至所述推送平台的数据出口层;根据所述设备类型对相应的所述推送消息进行协议转换,并将协议转换后的推送消息加密处理后发送至与所述设备类型对应的推送服务;这样使得推送平台的稳定性提高,也进一步提升了推送服务的服务性能。
Description
技术领域
本发明涉及数据传输优化技术领域,尤其涉及一种推送消息的处理方法、装置、服务器和存储介质。
背景技术
信息推送作为服务端和客户端的一种重要交互手段,其在移动设备开发中承担着越来越重要的角色和任务。信息推送的实现方式有很多种,例如,可在移动设备原生的操作系统中集成相应的推送模块以提供推送服务;或者对于一些终端设备不具备系统级别的服务支持,可采用第三方推送平台来提供推送服务。
采用第三方推送平台来支持跨系统平台推送服务的优点在于提供该推送平台的开源方案,其他用户可通过一定途径获取该开源方案,但是该开源方案的缺点在于稳定性不足,导致第三方推送平台的数据安全性不高,当用户数量增大时,推送服务的服务性能大大降低,延迟性较大,且用户获取到的推送消息被系统回收和杀掉的概率相对较高。
发明内容
本发明的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中第三方推送平台的开源方案稳定性不足,导致推送服务的服务性能降低的技术缺陷。
本发明提供一种推送消息的处理方法,包括如下步骤:
从消息服务器下载原始消息,并将所述原始消息写入消息队列,其中,所述消息队列存储于推送平台的数据接入层;
读取所述消息队列中的原始消息,并通过所述推送平台的数据转换层对所述原始消息进行解析和处理得到推送消息;
获取目标移动终端的设备类型,将所述设备类型和所述推送消息发送至所述推送平台的数据出口层;
根据所述设备类型对相应的所述推送消息进行协议转换,并将协议转换后的推送消息加密处理后发送至与所述设备类型对应的推送服务;其中,所述推送服务将所述推送消息推送至所述目标移动终端。
在其中一个实施例中,在所述推送服务将所述推送消息推送至所述目标移动终端之后,还包括:
获取所述推送结果,当所述推送结果为失败时,接收所述目标移动终端返回的通知消息,并在接收到所述通知消息时将所述推送消息重新推送至所述目标移动终端。
在其中一个实施例中,读取所述消息队列中的原始消息,并通过所述推送平台的数据转换层对所述原始消息进行解析和处理得到推送消息的步骤,包括:
获取所述原始消息,将所述原始消息保存至所述推送平台的数据转换层;
通过所述数据转换层对所述原始消息进行解析得到消息内容;
对所述消息内容进行容错和校验处理得到推送消息。
在其中一个实施例中,所述目标移动终端的设备类型包括IOS设备,所述IOS设备对应的推送服务包括APNs服务器;
所述将协议转换后的推送消息加密处理后发送至与所述设备类型对应的推送服务的步骤,包括:
获取所述协议转换后的推送消息,并通过ssl连接管理对所述协议转换后的推送消息进行加密后得到加密消息;
将所述加密消息推送至所述IOS设备对应的推送服务。
在其中一个实施例中,在接收到所述通知消息时将所述推送消息重新推送至所述目标移动终端的步骤,包括:
接收所述IOS设备返回的通知消息,并调取已保存的与所述通知消息对应的加密消息;
通过APNs服务器中的注册列表查找所述IOS设备,并将所述加密消息重新推送至所述目标移动终端。
在其中一个实施例中,所述移动终端的设备类型还包括Android设备,所述Android设备对应的推送服务包括第三方推送服务;
所述将协议转换后的推送消息加密处理后发送至与所述设备类型对应的推送服务的步骤,包括:
获取所述协议转换后的推送消息,并通过ssl连接管理对所述协议转换后的推送消息进行加密处理后得到加密消息;
将所述加密消息推送至所述Android设备对应的推送服务。
在其中一个实施例中,在接收到所述通知消息时将所述推送消息重新推送至所述目标移动终端的步骤,包括:
接收所述Android设备返回的通知消息,并将所述通知消息发送至所述推送平台;
通过所述推送平台的数据出口层将所述通知消息对应的加密消息由所述第三方推送服务重新推送至所述目标移动终端。
本发明还提供了一种推送消息的处理装置,其包括:
获取模块,用于从消息服务器下载原始消息,并将所述原始消息写入消息队列,其中,所述消息队列存储推送平台的数据接入层;
处理模块,用于读取所述消息队列中的原始消息,并通过所述推送平台的数据转换层对所述原始消息进行解析和处理后得到推送消息;
数据传输模块,用于获取目标移动终端的设备类型,将所述设备类型和所述推送消息发送至所述推送平台的数据出口层;
推送模块,用于根据所述设备类型对相应的所述推送消息进行协议转换,并将协议转换后的推送消息加密处理后发送至与所述设备类型对应的推送服务,其中,所述推送服务将所述推送消息推送至所述目标移动终端。
本发明还提供了一种服务器,包括一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述实施例中任意一项所述的推送消息的处理方法的步骤。
本发明还提供了一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上述实施例中任意一项所述的推送消息的处理方法的步骤。
上述推送消息的处理方法、装置、服务器和存储介质,首先从消息服务器下载原始消息,并将所述原始消息写入消息队列,其中,所述消息队列存储于推送平台的数据接入层;然后读取所述消息队列中的原始消息,并通过所述推送平台的数据转换层对所述原始消息进行解析和处理得到推送消息;获取目标移动终端的设备类型,将所述设备类型和所述推送消息发送至所述推送平台的数据出口层;根据所述设备类型对相应的所述推送消息进行协议转换,并将协议转换后的推送消息加密处理后发送至与所述设备类型对应的推送服务;其中,所述推送服务将所述推送消息推送至所述目标移动终端。
本方案通过在第三方推送平台开源方案的基础上进行针对性优化设计,大幅度降低了推送消息的丢失率,采用分层架构体系,引入消息堆积能力较强的消息队列,使得推送平台可以支持百万级的吞吐量,避免消息推送延迟;另外,数据传输过程中使用ssl连接管理等方式对推送消息进行加密处理,使得消息推送的过程更加安全,最后对移动终端没有接收到的消息进行二次推送,保证消息能够及时地推送到移动终端,增加用户体验度。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明实施例的应用环境图;
图2是一个实施例中推送消息的处理方法流程图;
图3是一个实施例的检测推送消息是否推送成功的流程图;
图4是一个实施例的对原始消息进行解析和处理法流程图;
图5是一个实施例的推送消息的处理装置结构示意图;
图6是一个实施例的消息服务器及推送平台所在的计算设备的组成结构图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
参考图1所示,图1是本发明实施例的应用环境图;本实施例中,本发明的技术方案可以基于推送平台实现,如图1中,消息服务器110与目标移动终端130之间通过推送平台120进行消息推送,目标移动终端130上安装有相应的推送服务,通过该推送服务将推送平台120中的推送消息推送至目标移动终端并实现相关功能;在本发明实施例中,推送平台120从消息服务器110中下载原始消息,并将该原始消息加工处理后推送至目标服务器130;这里所指的消息服务器110是指实现各种后台功能的服务器设备,这里所指的推送平台120是指能够实现服务器与终端设备之间数据传输与推送服务的第三方推送平台,这里所指的目标移动终端130是指智能手机、智能平板等能够接收推送消息的终端设备。
在一个实施例中,如图2所示,图2为一个实施例中推送消息的处理方法流程图,本实施例中提出了一种推送消息的处理方法,具体可以包括以下步骤:
S110:从消息服务器下载原始消息,并将所述原始消息写入消息队列,其中,所述消息队列存储于推送平台的数据接入层。
在此步骤中,推送平台120从消息服务器110端下载原始消息,并将下载的原始消息写入推送平台120中的消息队列里。
本实施例中,推送平台120采用分层架构体系,其中包括数据接入层、数据转换层和数据出口层,且待推送的消息由数据接入层传输至数据转换层进行处理后进入数据出口层,再由数据出口层将推送消息推送至不同的终端设备。
上述消息队列存储于数据接入层中,且消息队列可采用消息堆积能力较强的队列,如RocketMQ或者是Kafka,选择诸如此类的消息队列,可支持推送平台120的横向扩展,满足每天百亿级的吞吐量,提高推送平台的稳定性。
S120:读取所述消息队列中的原始消息,并通过所述推送平台的数据转换层对所述原始消息进行解析和处理得到推送消息。
在此步骤中,通过步骤S110推送平台120从消息服务器110端下载原始消息,并将下载的原始消息写入消息队列中,然后读取下载的原始消息,并进一步将该原始消息传输至数据转换层进行解析和处理。
上述对原始消息进行解析和处理步骤中,处理的步骤可以包括容错和校验处理等,可以查找出原始消息中错误的部分并对错误部分进行校验和改正,避免消息在传输过程中出错。
原始消息经数据转换层解析和处理后转换成推送消息,保证从消息服务器110中下载的消息的准确性,避免推送至目标移动终端130的消息存在误差。
S130:获取目标移动终端的设备类型,将所述设备类型和所述推送消息发送至所述推送平台的数据出口层。
本步骤中,通过步骤S120得到处理后的推送消息,并进一步地获取目标移动终端130的设备类型。
由于用户使用的移动终端大都分为两种操作系统,一种被称为安卓系统,另一种则是苹果系统,针对这两种操作系统的推送消息,推送平台120对消息的处理以及协议转换等方式并不相同,因而,需要在对推送消息进行加密等处理前获取目标移动终端130的设备类型,以便对不同设备类型的推送消息分别进行不同的处理操作。
获取到目标移动终端130的设备类型后,将获取的设备类型以及推送消息一并发送至推送平台120的数据出口层。
S140:根据所述设备类型对相应的所述推送消息进行协议转换,并将协议转换后的推送消息加密处理后发送至与所述设备类型对应的推送服务;其中,所述推送服务将所述推送消息推送至所述目标移动终端。
本步骤中,通过上述步骤S130获取目标移动终端130的设备类型后,根据不同用户使用的设备类型对相应的推送消息进行协议转换,保证推送消息经不同的协议转换后能够与不同类型的目标移动终端130之间进行数据传输。
推送消息经协议转换后再经过ssl加密处理,这样可将推送消息无泄漏地在服务器之间进行安全交换,保证目标移动终端130接收到的推送消息不会被其他设备读取,进一步加强了数据安全性。
上述推送消息的处理方法,首先从消息服务器110下载原始消息,并将所述原始消息写入消息队列,其中,所述消息队列存储于推送平台120的数据接入层;然后读取所述消息队列中的原始消息,并通过所述推送平台120的数据转换层对所述原始消息进行解析和处理得到推送消息;获取目标移动终端130的设备类型,将所述设备类型和所述推送消息发送至所述推送平台120的数据出口层;根据所述设备类型对相应的所述推送消息进行协议转换,并将协议转换后的推送消息加密处理后发送至与所述设备类型对应的推送服务;其中,所述推送服务将所述推送消息推送至所述目标移动终端130。
本方案通过在第三方推送平台开源方案的基础上进行针对性优化设计,大幅度降低了推送消息的丢失率,采用分层架构体系,引入消息堆积能力较强的消息队列,使得推送平台120可以支持百万级的吞吐量,避免消息推送延迟;另外,数据传输过程中使用ssl连接管理等方式对推送消息进行加密处理,使得消息推送的过程更加安全,最后对移动终端没有接收到的消息进行二次推送,保证消息能够及时地推送到移动终端,增加用户体验度。
在一个实施例中,参考图3所示,图3是一个实施例的检测推送消息是否推送成功的流程图,步骤S140的在所述推送服务将所述推送消息推送至所述目标移动终端之后,还可以包括:
Ⅰ:获取所述推送结果。
本步骤中,通过步骤S140中根据设备类型对相应的推送消息进行协议转换,并将协议转换后的推送消息加密处理后发送至与设备类型对应的推送服务,并通过推送服务将推送消息推送至不同的目标移动终端130。
接着上述将推送消息推送至目标移动终端130后,推送服务进一步监控和观察目标移动终端130的动作,并判断此次推送消息的结果。
Ⅱ:当所述推送结果为失败时,接收所述目标移动终端返回的通知消息,并在接收到所述通知消息时将所述推送消息重新推送至所述目标移动终端。
在此步骤中,当推送至目标移动终端130的推送消息推送失败时,目标移动终端130会发送通知消息到推送服务中,推送服务接收到目标移动终端130发送的通知消息后,将原本推送的消息再一次重新推送至该目标移动终端130上,避免在目标移动终端130无法接收推送消息的情况下导致该推送消息丢失的现象发生。
进一步地,目标移动终端130推送失败的原因可以包括该目标移动终端130处于关机状态、飞行模式、网络状态不佳、无网络连接、应用权限设置或其他正在使用的应用阻止该项推送消息。
更进一步地,推送服务会一直保持该项推送消息的服务,当消息推送失败后重新对该推送消息进行推送,直至消息推送成功为止。
本实施例中,通过推送服务获取目标移动终端130的推送结果,并根据推送结果进一步确认该项推送消息是否推送成功,若未成功,则保持推送服务,直至推送成功为止,这样不仅保证了推送服务的服务性能,还确保用户能够及时接收到推送消息,增加用户体验度。
在一个实施例中,参考图4所示,图4是一个实施例的对原始消息进行解析和处理流程图,步骤S120中读取所述消息队列中的原始消息,并通过所述推送平台的数据转换层对所述原始消息进行解析和处理得到推送消息的步骤,可以包括:
S121:获取所述原始消息,将所述原始消息保存至所述推送平台的数据转换层。
在本步骤中,读取消息队列中保存的原始信息,并将读取后的原始信息保存至推送平台120的数据转换层中。
上述方式将原本保存在数据接入层中的原始数据转移至数据转换层中,并通过数据转化层对原始数据进行处理,以便进一步提高推送信息的数据准确率。
S122:通过所述数据转换层对所述原始消息进行解析得到消息内容。
在本步骤中,对步骤S121中获取到的原始消息进行解析后得到原始消息的消息内容。
比如,原始消息可以为一串代码,通过数据转层对这串代码进行解码操作,获取到代码段中的内容信息。
S123:对所述消息内容进行容错和校验处理得到推送消息。
本步骤中,对S123中解析后的消息内容进行进一步地处理后得到推送消息,处理步骤可以包括对消息内容进行容错和校验等。
上述对消息内容进行容错处理,可以保证推送消息的冗余度,增加消息的容错能力,在处理过程中,还对消息内容进行了检验,保证推送消息的正确性,避免消息传输过程中信息丢失的现象发生。
在一个实施例中,所述目标移动终端的设备类型包括IOS设备,所述IOS设备对应的推送服务包括APNs服务器;步骤S140中所述将协议转换后的推送消息加密处理后发送至与所述设备类型对应的推送服务的步骤,可以包括:
(1)获取所述协议转换后的推送消息,并通过ssl连接管理对所述协议转换后的推送消息进行加密后得到加密消息。
本步骤中,通过步骤S130获取到协议转换后的推送消息,然后将该协议转换后的推送消息进行ssl连接管理后生成加密消息。
上述对协议转换后的推送消息进行ssl连接管理的目的在于保证推送平台120与目标移动终端130之间进行信息交互时交互数据的安全性,防止数据在交互的过程中被其他用户等截取,导致信息内容泄露的现象发生。
(2)将所述加密消息推送至所述IOS设备对应的推送服务。
本步骤中,将上述步骤(1)中得到的加密消息推送至与目标移动终端130的设备类型对应的推送服务。
上述目标移动终端130的设备类型为IOS设备,且该IOS设备的推送服务为APNs服务器,因此,将加密消息推送至IOS设备上对应的APNs服务器中。
在一个实施例中,所述移动终端的设备类型还包括Android设备,所述Android设备对应的推送服务包括第三方推送服务;步骤S140中所述将协议转换后的推送消息加密处理后发送至与所述设备类型对应的推送服务的步骤,还可以包括:
(1)获取所述协议转换后的推送消息,并通过ssl连接管理对所述协议转换后的推送消息进行加密处理后得到加密消息。
本步骤中,通过步骤S130获取到协议转换后的推送消息,然后将该协议转换后的推送消息进行ssl连接管理后生成加密消息。
上述对协议转换后的推送消息进行ssl连接管理的目的在于保证推送平台120与目标移动终端130之间进行信息交互时交互数据的安全性,防止数据在交互的过程中被其他用户等截取,导致信息内容泄露的现象发生。
(2)将所述加密消息推送至所述Android设备对应的推送服务。
本步骤中,将上述步骤(1)中得到的加密消息推送至与目标移动终端130的设备类型对应的推送服务。
上述目标移动终端130的设备类型为Android设备,且该Android设备的推送服务为第三方推送服务,因此,将加密消息推送至Android设备上对应的第三方推送服务中。
在一个实施例中,在接收到所述通知消息时将所述推送消息重新推送至所述目标移动终端的步骤,可以包括:
(1)接收所述IOS设备返回的通知消息,并调取已保存的与所述通知消息对应的加密消息。
本步骤中,当目标移动终端130的设备类型为IOS设备时,对应的推送服务为APNs服务器,此时APNs服务器接收由APNs服务器对应的IOS设备返回的通知消息。
需要说明的是,这里的通知消息指的是推送信息没有发送成功时IOS设备返回的推送失败的信息;这里的APNs服务器指的是能够发送推送消息且对发送的推送消息进行保存的推送服务中的一种。
接着上述接收到IOS设备返回的通知消息后,调取第一次发送此推送消息时APNs服务器中保存的推送消息。
(2)通过APNs服务器中的注册列表查找所述IOS设备,并将所述加密消息重新推送至所述目标移动终端。
本步骤中,通过上述步骤(1)中调取的已保存的推送消息,然后查找注册列表中与发送该通知消息的对应IOS设备,将保存的推送消息重新发送至该IOS设备上。
本实施例中,通过获取IOS设备返回的通知消息,并调用与通知消息对应的已经加密的推送消息,将此加密消息再次推送至IOS设备,直到IOS设备端接收到此项推送消息为止;这样,不仅保证了消息推送的及时性,也避免了信息丢失造成用户无法接收推送信息的现象发生。
在一个实施例中,在接收到所述通知消息时将所述推送消息重新推送至所述目标移动终端的步骤,还可以包括:
(1)接收所述Android设备返回的通知消息,并将所述通知消息发送至所述推送平台。
本步骤中,当目标移动终端130的设备类型为Android设备时,对应的推送服务为第三方推送服务,此时第三方推送服务接收由第三方推送服务对应的Android设备返回的通知消息。
需要说明的是,这里的通知消息指的是推送信息没有发送成功时Android设备返回的推送失败的信息;这里的第三方推送服务指的是能够将推送平台120的数据出口层发送的加密消息推送至Android设备的推送服务中的一种。
接着上述接收到Android设备返回的通知消息后,将该通知消息立即发送至推送平台120。
(2)通过所述推送平台的数据出口层将所述通知消息对应的加密消息由所述第三方推送服务重新推送至所述目标移动终端。
本步骤中,通过上述步骤(1)中获取Android设备发送的通知消息,然后通过推送平台120的数据出口层将该通知消息对应的加密消息由第三方推送服务重新推送至Android设备中。
本实施例中,通过获取Android设备返回的通知消息,并将该通知消息发送至推送平台120,由推送平台120重新调取该通知消息对应的加密消息后,将此加密消息再次推送至Android设备,直到Android设备端接收到此项推送消息为止;这样,不仅保证了消息推送的及时性,也避免了信息丢失造成用户无法接收推送信息的现象发生。
在一个实施例中,如图5所示,图5为一个实施例的推送消息的处理装置结构示意图,本实施例中提供了一种推送消息的处理装置,其包括:获取模块210、处理模块220、数据传输模块230和推送模块240,其中:
获取模块210:用于从消息服务器下载原始消息,并将所述原始消息写入消息队列,其中,所述消息队列存储推送平台的数据接入层。
本模块中推送平台120从消息服务器110端下载原始消息,并将下载的原始消息写入推送平台120中的消息队列里。
本实施例中,推送平台120采用分层架构体系,其中包括数据接入层、数据转换层和数据出口层,且待推送的消息由数据接入层传输至数据转换层进行处理后进入数据出口层,再由数据出口层将推送消息推送至不同的终端设备。
上述消息队列存储于数据接入层中,且消息队列可采用消息堆积能力较强的队列,如RocketMQ或者是Kafka,选择诸如此类的消息队列,可支持推送平台120的横向扩展,满足每天百亿级的吞吐量,提高推送平台的稳定性。
处理模块220:用于读取所述消息队列中的原始消息,并通过所述推送平台的数据转换层对所述原始消息进行解析和处理后得到推送消息。
本模块中,通过获取模块210中推送平台120从消息服务器110端下载原始消息,并将下载的原始消息写入消息队列中,然后读取下载的原始消息,并进一步将该原始消息传输至数据转换层进行解析和处理。
上述对原始消息进行解析和处理步骤中,处理的步骤可以包括容错和校验处理等,可以查找出原始消息中错误的部分并对错误部分进行校验和改正,避免消息在传输过程中出错。
原始消息经数据转换层解析和处理后转换成推送消息,保证从消息服务器110中下载的消息的准确性,避免推送至目标移动终端130的消息存在误差。
数据传输模块230:用于获取目标移动终端的设备类型,将所述设备类型和所述推送消息发送至所述推送平台的数据出口层。
本模块中通过处理模块220得到处理后的推送消息,并进一步地获取目标移动终端130的设备类型。
由于用户使用的移动终端大都分为两种操作系统,一种被称为安卓系统,另一种则是苹果系统,针对这两种操作系统的推送消息,推送平台120对消息的处理以及协议转换等方式并不相同,因而,需要在对推送消息进行加密等处理前获取目标移动终端130的设备类型,以便对不同设备类型的推送消息分别进行不同的处理操作。
获取到目标移动终端130的设备类型后,将获取的设备类型以及推送消息一并发送至推送平台120的数据出口层。
推送模块240:根据所述设备类型对相应的所述推送消息进行协议转换,并将协议转换后的推送消息加密处理后发送至与所述设备类型对应的推送服务,其中,所述推送服务将所述推送消息推送至所述目标移动终端。
本模块中通过上述数据传输模块230获取目标移动终端130的设备类型后,根据不同用户使用的设备类型对相应的推送消息进行协议转换,保证推送消息经不同的协议转换后能够与不同类型的目标移动终端130之间进行数据传输。
推送消息经协议转换后再经过ssl加密处理,这样可将推送消息无泄漏地在服务器之间进行安全交换,保证目标移动终端130接收到的推送消息不会被其他设备读取,进一步加强了数据安全性。
上述推送消息的处理装置,首先从消息服务器110下载原始消息,并将所述原始消息写入消息队列,其中,所述消息队列存储于推送平台120的数据接入层;然后读取所述消息队列中的原始消息,并通过所述推送平台120的数据转换层对所述原始消息进行解析和处理得到推送消息;获取目标移动终端130的设备类型,将所述设备类型和所述推送消息发送至所述推送平台120的数据出口层;根据所述设备类型对相应的所述推送消息进行协议转换,并将协议转换后的推送消息加密处理后发送至与所述设备类型对应的推送服务;其中,所述推送服务将所述推送消息推送至所述目标移动终端130。
本方案通过在第三方推送平台开源方案的基础上进行针对性优化设计,大幅度降低了推送消息的丢失率,采用分层架构体系,引入消息堆积能力较强的消息队列,使得推送平台120可以支持百万级的吞吐量,避免消息推送延迟;另外,数据传输过程中使用ssl连接管理等方式对推送消息进行加密处理,使得消息推送的过程更加安全,最后对移动终端没有接收到的消息进行二次推送,保证消息能够及时地推送到移动终端,增加用户体验度。
关于推送消息的处理装置的具体限定可以参见上文中对于推送消息的处理方法的限定,在此不再赘述。上述推送消息的处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图6所示,图6为一个实施例的消息服务器110及推送平台120所在的计算设备的组成结构图。该计算设备包括存储器310、通信模块320、一个或者多个处理器(CPU)330、用户接口340,以及用于互联这些组件的通信总线350。
处理器330可通过通信模块320接收和发送数据以实现网络通信和/或本地通信;用户接口340包括一个或多个输出设备341,还包括一个或多个输入设备342;存储器310可以是高速随机存取存储器,或其他随机存取固态存储设备,存储器310存储处理器330可执行的指令集,包括:操作系统311,用于处理各种基本系统服务和用于执行硬件相关任务的程序;应用312,包括消息服务器110或推送平台120中的部分或全部单元或者模块。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算设备的限定,具体的计算设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提出了一种服务器,包括一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述实施例中任意一项所述的推送消息的处理方法的步骤。
在一个实施例中,提出了一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上述实施例中任意一项所述的推送消息的处理方法的步骤。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种推送消息的处理方法,其特征在于,包括如下步骤:
从消息服务器下载原始消息,并将所述原始消息写入消息队列,其中,所述消息队列存储于推送平台的数据接入层;
读取所述消息队列中的原始消息,并通过所述推送平台的数据转换层对所述原始消息进行解析和处理得到推送消息;
获取目标移动终端的设备类型,将所述设备类型和所述推送消息发送至所述推送平台的数据出口层;
根据所述设备类型对相应的所述推送消息进行协议转换,并将协议转换后的推送消息加密处理后发送至与所述设备类型对应的推送服务;其中,所述推送服务将所述推送消息推送至所述目标移动终端。
2.根据权利要求1所述的方法,其特征在于,在所述推送服务将所述推送消息推送至所述目标移动终端之后,还包括:
获取所述推送结果,当所述推送结果为失败时,接收所述目标移动终端返回的通知消息,并在接收到所述通知消息时将所述推送消息重新推送至所述目标移动终端。
3.根据权利要求2所述的方法,其特征在于,读取所述消息队列中的原始消息,并通过所述推送平台的数据转换层对所述原始消息进行解析和处理得到推送消息的步骤,包括:
获取所述原始消息,将所述原始消息保存至所述推送平台的数据转换层;
通过所述数据转换层对所述原始消息进行解析得到消息内容;
对所述消息内容进行容错和校验处理得到推送消息。
4.根据权利要求3所述的方法,其特征在于,所述目标移动终端的设备类型包括IOS设备,所述IOS设备对应的推送服务包括APNs服务器;
所述将协议转换后的推送消息加密处理后发送至与所述设备类型对应的推送服务的步骤,包括:
获取所述协议转换后的推送消息,并通过ssl连接管理对所述协议转换后的推送消息进行加密后得到加密消息;
将所述加密消息推送至所述IOS设备对应的推送服务。
5.根据权利要求4所述的方法,其特征在于,在接收到所述通知消息时将所述推送消息重新推送至所述目标移动终端的步骤,包括:
接收所述IOS设备返回的通知消息,并调取已保存的与所述通知消息对应的加密消息;
通过APNs服务器中的注册列表查找所述IOS设备,并将所述加密消息重新推送至所述目标移动终端。
6.根据权利要求4所述的方法,其特征在于,所述移动终端的设备类型还包括Android设备,所述Android设备对应的推送服务包括第三方推送服务;
所述将协议转换后的推送消息加密处理后发送至与所述设备类型对应的推送服务的步骤,包括:
获取所述协议转换后的推送消息,并通过ssl连接管理对所述协议转换后的推送消息进行加密处理后得到加密消息;
将所述加密消息推送至所述Android设备对应的推送服务。
7.根据权利要求6所述的方法,其特征在于,在接收到所述通知消息时将所述推送消息重新推送至所述目标移动终端的步骤,包括:
接收所述Android设备返回的通知消息,并将所述通知消息发送至所述推送平台;
通过所述推送平台的数据出口层将所述通知消息对应的加密消息由所述第三方推送服务重新推送至所述目标移动终端。
8.一种推送消息的处理装置,其特征在于,包括:
获取模块,用于从消息服务器下载原始消息,并将所述原始消息写入消息队列,其中,所述消息队列存储推送平台的数据接入层;
处理模块,用于读取所述消息队列中的原始消息,并通过所述推送平台的数据转换层对所述原始消息进行解析和处理后得到推送消息;
数据传输模块,用于获取目标移动终端的设备类型,将所述设备类型和所述推送消息发送至所述推送平台的数据出口层;
推送模块,用于根据所述设备类型对相应的所述推送消息进行协议转换,并将协议转换后的推送消息加密处理后发送至与所述设备类型对应的推送服务,其中,所述推送服务将所述推送消息推送至所述目标移动终端。
9.一种服务器,其特征在于,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行权利要求1~7任意一项所述的推送消息的处理方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~7任意一项所述的推送消息的处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910440472.1A CN110233883A (zh) | 2019-05-24 | 2019-05-24 | 推送消息的处理方法、装置、服务器和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910440472.1A CN110233883A (zh) | 2019-05-24 | 2019-05-24 | 推送消息的处理方法、装置、服务器和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110233883A true CN110233883A (zh) | 2019-09-13 |
Family
ID=67861550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910440472.1A Pending CN110233883A (zh) | 2019-05-24 | 2019-05-24 | 推送消息的处理方法、装置、服务器和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110233883A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111416763A (zh) * | 2020-02-21 | 2020-07-14 | 北京值得买科技股份有限公司 | 消息推送方法 |
CN112532712A (zh) * | 2020-11-24 | 2021-03-19 | 青岛海尔科技有限公司 | 协议发送方法及装置、存储介质、电子装置 |
CN112887420A (zh) * | 2021-02-09 | 2021-06-01 | 网银在线(北京)科技有限公司 | 消息推送方法和装置、计算机可读存储介质、电子设备 |
CN113098936A (zh) * | 2021-03-25 | 2021-07-09 | 山东浪潮通软信息科技有限公司 | 一种向移动端推送消息的方法、装置及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102724324A (zh) * | 2012-06-28 | 2012-10-10 | 用友软件股份有限公司 | 消息推送整合装置和消息推送整合方法 |
CN104584489A (zh) * | 2012-08-30 | 2015-04-29 | 三星电子株式会社 | 推送消息服务系统和方法 |
CN105657000A (zh) * | 2015-12-25 | 2016-06-08 | 北京奇虎科技有限公司 | 消息传送方法及装置 |
CN107741884A (zh) * | 2017-10-09 | 2018-02-27 | 武汉斗鱼网络科技有限公司 | 一种分层状态机实现消息推送的方法和装置 |
-
2019
- 2019-05-24 CN CN201910440472.1A patent/CN110233883A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102724324A (zh) * | 2012-06-28 | 2012-10-10 | 用友软件股份有限公司 | 消息推送整合装置和消息推送整合方法 |
CN104584489A (zh) * | 2012-08-30 | 2015-04-29 | 三星电子株式会社 | 推送消息服务系统和方法 |
CN105657000A (zh) * | 2015-12-25 | 2016-06-08 | 北京奇虎科技有限公司 | 消息传送方法及装置 |
CN107741884A (zh) * | 2017-10-09 | 2018-02-27 | 武汉斗鱼网络科技有限公司 | 一种分层状态机实现消息推送的方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111416763A (zh) * | 2020-02-21 | 2020-07-14 | 北京值得买科技股份有限公司 | 消息推送方法 |
CN112532712A (zh) * | 2020-11-24 | 2021-03-19 | 青岛海尔科技有限公司 | 协议发送方法及装置、存储介质、电子装置 |
CN112887420A (zh) * | 2021-02-09 | 2021-06-01 | 网银在线(北京)科技有限公司 | 消息推送方法和装置、计算机可读存储介质、电子设备 |
CN112887420B (zh) * | 2021-02-09 | 2023-04-18 | 网银在线(北京)科技有限公司 | 消息推送方法和装置、计算机可读存储介质、电子设备 |
CN113098936A (zh) * | 2021-03-25 | 2021-07-09 | 山东浪潮通软信息科技有限公司 | 一种向移动端推送消息的方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110233883A (zh) | 推送消息的处理方法、装置、服务器和存储介质 | |
CN101193089B (zh) | 有状态会话系统及其实现方法 | |
CN104811459A (zh) | 用于消息服务的处理方法、装置及系统、消息服务系统 | |
CN104539690B (zh) | 一种基于反馈机制和md5码检测的服务器远程数据同步方法 | |
CN101814971A (zh) | 一种手机文件传输方法 | |
US6543005B1 (en) | Transmitting data reliably and efficiently | |
CN104917586A (zh) | 传输数据的校验方法、装置及系统 | |
CN109451032A (zh) | 一种消息传递系统 | |
CN101631127A (zh) | 文件传输方法及客户端 | |
CN114124929A (zh) | 跨网络的数据处理方法和装置 | |
CN111181698B (zh) | 数据处理方法、装置、设备及介质 | |
US8526938B1 (en) | Testing mobile phone maintenance channel | |
CN101207617A (zh) | 网络储存系统的数据传输方法 | |
CN112055088B (zh) | 一种基于光闸的文件可靠传输系统及其方法 | |
CN114035969A (zh) | 一种分布式块存储多路径iscsi锁的实现方法、系统及设备 | |
CN109089299A (zh) | 一种基于SmartConfig模式让设备注册到云端的配网方法 | |
CN117278102A (zh) | 一种星上多源数据的智能流转处理方法及系统 | |
CN105656994B (zh) | 一种业务加速方法和装置 | |
Narita et al. | Reliable cloud-based robot services | |
CN111200653A (zh) | 多平台通讯方法、多平台通讯装置及中间服务器 | |
CN106790348A (zh) | 分布式系统的文件上传及下载方法与系统 | |
CN113992740B (zh) | 一种基于自主可控的中间件及数据传输方法 | |
US7143313B2 (en) | Support interface module bug submitter | |
Yun et al. | Security validation for data diode with reverse channel | |
CN114124935A (zh) | Ftp服务的实现方法、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190913 |
|
RJ01 | Rejection of invention patent application after publication |