CN111385330B - 消息推送方法、装置、计算机设备及存储介质 - Google Patents
消息推送方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111385330B CN111385330B CN201811638688.0A CN201811638688A CN111385330B CN 111385330 B CN111385330 B CN 111385330B CN 201811638688 A CN201811638688 A CN 201811638688A CN 111385330 B CN111385330 B CN 111385330B
- Authority
- CN
- China
- Prior art keywords
- push
- message
- target terminal
- platform
- pushing
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000013507 mapping Methods 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 14
- 238000012790 confirmation Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000003139 buffering effect Effects 0.000 claims description 4
- 230000006854 communication Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种消息推送方法、装置、计算机设备和存储介质。该方法包括:接收推送消息并对所述推送消息进行缓存,所述推送消息为待推送至目标终端的推送消息;识别所述目标终端的运行状态,以根据所述目标终端的运行状态获取对应的消息推送方式;根据所述获取的消息推送方式将所述推送消息推送至所述目标终端中进行展示。该发明避免了因网络问题导致丢失推送消息而无法完全保证推送消息最终一定送达至客户端的情况,解决了难以统计消息推送的真实到达率的问题,进一步地,该发明还支持多个应用程序在一套推送系统进行消息推送。
Description
技术领域
本发明涉及信息传输技术领域,具体而言,本发明涉及一种消息推送方法、装置、计算机设备及存储介质。
背景技术
随着互联网技术的蓬勃发展,大多数安装于终端上的应用程序都提供了消息推送功能。目前使用的消息推送的方式一般以主动下发为主,并且根据终端中应用程序的运行状态可选择不同的下发渠道,比如应用程序处于在线状态时直接将推送信息下发至客户端,而应用程序处于离线状态时则通过第三方平台推送信息。但是,无论是直接下发还是通过第三方平台下发,推送信息在推送过程中都可能因诸如网络问题等原因而导致丢失,无法完全保证推送信息最终一定送达至客户端,难以统计消息推送的真实到达率,而且终端中每一个应用程序对应一套推送系统,多个应用程序则需要维护多套推送系统,维护成本高。
发明内容
本发明的目的旨在至少解决上述技术缺陷之一,特别是无法完全保证推送信息最终一定送达至客户端,难以统计消息推送的真实到达率的技术缺陷。
为解决上述技术问题,本发明提供了一种消息推送方法,该消息推送方法包括以下步骤:
接收推送消息并对所述推送消息进行缓存,所述推送消息为待推送至目标终端的推送消息;
识别所述目标终端的运行状态,以根据所述目标终端的运行状态获取对应的消息推送方式;
根据所述获取的消息推送方式将所述推送消息推送至所述目标终端中进行展示。
可选地,所述消息推送方式包括与在线状态相对应的直接推送方式和与离线状态相对应的第三方推送方式;识别出所述目标终端的运行状态之后,包括:
当所述目标终端的运行状态为在线状态时,以直接推送的方式将所述推送消息推送至所述目标终端中进行展示;
当所述目标终端的运行状态为离线状态时,以第三方推送的方式将所述推送消息推送至所述目标终端中进行展示。
可选地,所述推送消息包括目标推送内容和目标终端标识,在接收推送消息并对所述推送消息进行缓存时,包括:
提取所述推送消息中的目标推送内容和目标终端标识;
将所述目标推送内容与所述推送平台中已缓存的推送内容进行比对,以验证所述目标推送内容是否与所述推送平台中已缓存的推送内容一致;
当所述目标推送内容与所述推送平台中已缓存的推送内容一致时,将所述目标终端标识添加至与所述推送平台中已缓存的推送内容具有映射关系的推送列表中;
当所述目标推送内容与所述推送平台中已缓存的推送内容不一致时,将所述目标推送内容缓存至所述推送平台以及在所述推送平台中建立与所述目标推送内容具有映射关系的推送列表,并将所述目标终端标识添加至该推送列表中。
可选地,将所述目标推送内容缓存至所述推送平台时,还包括:
对所述目标推送内容进行签名算法计算,并以签名值为存储结构将所述推送内容缓存至推送平台中。
可选地,推送平台在接收推送消息并对所述推送消息进行缓存之后,还包括:
将表征推送消息来源的应用程序I D关联于所述推送消息,以使得所述推送平台支持多个应用程序的消息推送。
可选地,缓存在所述推送平台中的每一条推送消息均设置有与其对应的Msgid标识,将所述推送消息推送至所述目标终端中进行展示之后,还包括:
接收所述目标终端返回的表征推送消息已送达的确认指令,所述确认指令中具有所述推送消息对应的Msgid标识;
根据所述Msgid标识遍历所述推送平台缓存的推送消息,将所述Msgid标识对应的推送消息从所述推送平台缓存中删除。
可选地,所述消息推送方法还包括:
建立所述目标终端与所述推送平台之间的信息传输通道,以使得所述目标终端通过所述信息传输通道从所述推送平台的缓存中主动拉取当前未接收的推送消息,以将所述推送消息展示于所述目标终端中。
可选地,当所述目标终端从所述推送平台的缓存中主动拉取当前未接收的推送消息时,还包括:
接收所述目标终端发送至所述推送平台的推送消息拉取请求,所述拉取请求中具有目标终端标识;
根据所述目标终端标识在所述推送平台的缓存中拉取该目标用户端当前未接收的推送消息;
将所述拉取得到的推送消息发送至所述目标终端中进行展示。
可选地,接收推送消息并对所述推送消息进行缓存之后,还包括:
对所述推送平台缓存的推送消息进行有效期设置;
将所述有效期与当前时间进行比对,判断所述推送消息是否已失效;
当判断出所述推送消息已失效时,将所述推送消息从所述推送平台的本地缓存中删除。
为解决上述技术问题,本发明还提供了一种消息推送装置,所述消息推送装置包括:
接收模块,用于接收推送消息并对所述推送消息进行缓存,所述推送消息为待推送至目标终端的推送消息;
处理模块,用于识别所述目标终端的运行状态,以根据所述目标终端的运行状态获取对应的消息推送方式;
执行模块,用于根据所述获取的消息推送方式将所述推送消息推送至所述目标终端中进行展示。
为解决上述技术问题,本发明还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述消息推送方法的步骤。
为解决上述技术问题,本发明还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述消息推送方法的步骤。
本发明的有益效果在于:
本发明通过在将所述待推送信息推送至所述目标终端中进行展示之前先将所述待推送信息存储于预设的推送平台本地中,避免了因网络问题导致丢失推送信息而无法完全保证推送信息最终一定送达至客户端的情况,解决了难以统计消息推送的真实到达率的问题。而且通过建立所述目标终端与所述推送平台之间的信息传输通道,以使得目标终端可以从所述推送平台中主动拉取当前未接收的待推送信息,确保推送消息的可靠到达用户终端。进一步地,将表征所述待推送信息来源的应用程序ID添加至所述待推送信息中,以在将所述待推送信息推送至所述目标终端中进行展示时,同时展示所述待推送信息来源的应用程序ID,这样一来,可以支持多个应用程序在一套推送系统进行消息推送,降低系统的维护成本。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的消息推送方法的基本流程示意图;
图2为本发明实施例提供的消息推送方法中缓存推送消息时的一种方法流程示意图;
图3为本发明实施例提供的消息推送方法中管理所述推送平台缓存的一种方法流程示意图;
图4为本发明实施例提供的消息推送方法中实现用户终端主动拉取推送消息时的一种方法流程示意图;
图5为本发明实施例提供的消息推送方法中对缓存的推送消息进行有效期设置的一种方法流程示意图;
图6为本发明实施例提供的消息推送装置基本结构框图;
图7为本发明实施例提供的计算机设备基本结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,且该操作的序号仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本实施例中提及的用户终端即为上述的终端。
请参阅图1,图1为本发明实施例提供的消息推送方法的基本流程示意图。
如图1所示,所述消息推送方法,包括以下步骤:
S100:接收推送消息并对所述推送消息进行缓存,所述推送消息为待推送至目标终端的推送消息。
本发明是一种消息推送方法,应用于各种类型的应用程序APP中,例如,直播视频APP、短视频APP等。在本实施例中,应用程序APP将其对应的业务服务下发实时推送给用户终端时,由所述应用程序APP的后台服务器将需要推送的内容信息和推送的目标终端信息进行组装打包生成推送消息,然后将所述推送消息发送给预设的推送平台。所述推送平台接收到所述应用程序APP的后台服务器发送的推送消息之后,将所述推送消息缓存至所述推送平台本地。所述推送消息为待推送至目标终端的推送消息。
S200:识别所述目标终端的运行状态,以根据所述目标终端的运行状态获取对应的信息推送方式。
终端的运行状态包括在线状态和离线状态。其中,所述在线状态是指应用程序APP处于前台打开或者常驻后台状态,在此种状态下,所述用户终端与应用程序APP的后台服务器保持长连接,可以进行实时通信。所述离线状态则是指应用程序APP处于关闭状态,在此种状态下,所述用户终端与应用程序APP的后台服务器无法进行实时通信。
在本实施例中,当所述推送平台将所述推送消息缓存至所述推送平台本地后,通过解析所述推送消息,得到所述推送消息对应的推送内容和目标终端信息,所述目标终端信息为目标终端标识,用于识别该目标终端。所述推送平台通过根据该解析得到的目标终端标识识别该目标终端的运行状态,并根据所述目标终端的运行状态获取相对应的消息推送方式。其中,所述消息推送方式包括与在线状态相对应的直接推送方式和与离线状态相对应的第三方推送方式,当识别出所述目标终端当前处于在线状态时,所述推送平台获取直接推送的方式,而当所述识别出所述目标终端当前处于离线状态时,则获取第三方推送的方式。
S300:根据所述获取的消息推送方式将所述推送消息推送至所述目标终端中进行展示。
在本实施例中,对于在线用户,由于用户与应用程序APP的后台服务器保持长连接,可以进行实时通信,故所述推送平台采用直接推送的方式将所述推送消息推送至所述目标终端中进行展示。对于离线用户,由于用户无法与应用程序APP的后台服务器进行实时网络通信,此时,所述推送平台采用第三方推送的方式将所述推送消息推送至所述目标终端中进行展示。进一步地,所述推送平台还根据用户的智能终端类型采用不同的推送渠道,例如,当用户的智能终端类型为iOS系统时使用Apn进行消息推送,而当用户的智能终端类型为android系统时使用gcm进行消息推送。
上述实施例所述的消息推送方法通过在预先设置一个推送平台,当应用程序APP后台服务器将推送消息下发给用户终端进行实时推送时,先将所述推送消息缓存至所述推送平台本地,然后识别所述推送消息对应目标终端的运行状态,并根据目标终端当前的运行状态获取对应的消息推送方式,再根据对应消息推送方式将所述推送消息推送至所述目标终端中进行展示。这样一来,避免了因网络问题导致丢失推送消息而无法完全保证推送消息最终一定送达至客户端的情况,解决了难以统计消息推送的真实到达率的问题。
在一些实施例中,对于每一个用户终端,所述推送平台需要缓存用户各自对应的推送消息内容,此时所述推送平台中缓存的数据将会变得非常庞大。实际上由运营产生的大多数用户的推送消息内容是一样的。当出现重复的内容,只需要保存一份内容数据,这样可减少推送消息的存储。具体请参阅图2,图2为本发明实施例提供的消息推送方法中缓存推送消息时的一种方法流程示意图。
如图2所示,由于应用程序APP的后台服务器在下发实时推送时,会将需要推送的内容信息和推送的目标终端信息进行组装打包生成推送消息发送给预设的推送平台,具体地,所述推送消息可以包括目标推送内容和目标终端标识,所述目标终端标识为该目标终端的唯一标识,用于识别该目标终端。所述步骤S100还可以包括步骤S110至步骤S140。其中,S110:提取所述推送消息中的目标推送内容和目标终端标识;S120:将所述目标推送内容与所述推送平台中已缓存的推送内容进行比对,以验证所述目标推送内容是否与所述推送平台中已缓存的推送内容一致;S130:当所述目标推送内容与所述推送平台中已缓存的推送内容一致时,将所述目标终端标识添加至与所述推送平台中已缓存的推送内容具有映射关系的推送列表中;S140:当所述目标推送内容与所述推送平台中已缓存的推送内容不一致时,将所述目标推送内容缓存至所述推送平台以及在所述推送平台中建立与所述目标推送内容具有映射关系的推送列表,并将所述目标终端标识添加至该推送列表中。
在本实施例中,所述推送平台接收到应用程序APP的后台服务器发送的推送消息后,通过解析所述推送消息,在所述推送消息中提取得到该推送消息对应的目标推送内容和目标终端标识,通过遍历所述推送平台中已缓存的推送内容,以将所述目标推送内容与所述推送平台中已缓存的推送内容进行比对,以验证所述目标推送内容是否与所述推送平台中已缓存的推送内容一致。当验证所述目标推送内容与所述推送平台中已缓存的推送内容一致时,说明该目标推送内容在所述推送平台中为重复的缓存内容,此时只需将该目标推送内容对应的目标终端标识添加至与所述推送平台中已缓存的推送内容具有映射关系的推送列表中即可,无需将所述目标推送内容缓存至所述推送平台本地。而当所述目标推送内容与所述推送平台中已缓存的推送内容不一致时,说明该目标推送内容在所述推送平台中没有缓存所述目标推送内容,此时将所述目标推送内容缓存至所述推送平台本地以及在所述推送平台中建立与所述目标推送内容具有映射关系的推送列表,并将所述目标终端标识添加至该推送列表中。
上述实施例通过建立与推送内容具有映射关系的推送列表,使得一份推送内容可以对应多个目标终端,实现当所述推送平台中出现重复的缓存内容时只需缓存一份推送内容,减小推送消息在所述推送平台中的存储。
在一些实施例中,所述推送平台中还可以引入签名算法计算,例如在对所述目标推送内容进行缓存时,对所述目标推送内容进行签名算法计算,并以签名值为存储结构将所述推送内容缓存至推送平台中。具体引入的签名算法可以为信息-摘要算法5(Message-Digest Algorithm 5,简称MD5)。MD5通过采集所述目标推送内容的信息摘要,并以此进行计算可以获得一个唯一的MD5值,这个值是独一无二的。
在本实施例中,在将所述目标推送内容与所述推送平台中已缓存的推送内容进行比对时,通过计算所述目标推送内容和所述推送平台中已缓存的推送内容的MD5值,当两者得出的MD5值一样时,认定所述目标推送内容与所述推送平台中已缓存的推送内容一致。而且通过MD5进行计算之后,将所述目标推送内容缓存至推送平台时,存储结构由原来用户终端对应的目标推送内容转化为用户终端对应签名值,并以签名值为存储结构缓存在所述推送平台中,从而减小推送消息在所述推送平台中的存储。
在一些实施例中,推送平台在接收推送消息并将所述推送消息缓存至本地之后,还可以将表征推送消息来源的应用程序ID关联于所述推送消息,以使所述表征推送消息来源的应用程序ID与所述推送消息一并缓存在所述推送平台本地,便于后续将所述推送消息推送至所述目标终端中进行展示时,同时展示所述推送消息来源的应用程序ID和推送消息,使得所述推送平台可以支持多个应用程序的消息推送。
上述实施例通过将表征推送消息来源的应用程序ID关联于所述推送消息,使得所述推送平台可以支持多个应用程序的消息推送,实现了多个应用程序APP也只需维护一套推送系统,降低了系统的维护成本。
在一些实施例中,请参阅图3,图3为本发明实施例提供的消息推送方法中管理所述推送平台缓存的一种方法流程示意图。
如图3所示,在本实施例中,缓存在所述推送平台中的每一条推送消息均设置有与其对应的Msgid标识,所述步骤S300之后,还可以包括步骤S400至步骤S500。其中,S400:接收所述目标终端返回的表征推送消息已送达的确认指令,所述确认指令中具有所述推送消息对应的Msgid标识;S500:根据所述Msgid标识遍历所述推送平台缓存的推送消息,将所述Msgid标识对应的推送消息从所述推送平台缓存中删除。
在本实施例中,所述目标终端在将推送的消息进行展示之后,会向所述推送平台发送表征推送消息已送达的确认指令,且所述确认指令中附带有所述推送消息对应的Msgid标识。当所述推送平台接收到所述目标终端返回的表征推送消息已送达的确认指令之后,获取所述确认指令中附带的Msgid标识,然后根据所述Msgid标识遍历缓存在所述推送平台本地中的推送消息,将所述Msgid标识对应的推送消息从所述推送平台本地中删除。可以理解的是,当所述推送消息是通过建立与推送内容具有映射关系的推送列表的方式进行缓存时,从所述推送平台本地中识别所述Msgid标识对应的推送内容,获取与该推送内容具有映射关系的推送列表,再从所述推送列表中查找出所述目标终端对应的目标终端标识,并且将该目标终端标识从所述推送列表中删除。进一步地,若在所述推送列表中查找所述目标终端对应的目标终端标识时,发现该推送列表中只有所述目标终端的目标终端标识存在时,一并将所述推送内容和推送列表删除。
在一些实施例中,除了应用程序APP的后台服务器将推送消息下发给用户终端进行实时推送以外,还可以在用户处于在线状态时,由用户终端主动拉取其未接收到的推送消息。例如,建立所述目标终端与所述推送平台之间的信息传输通道,以使得所述目标终端通过所述信息传输通道从所述推送平台的缓存中主动拉取当前未接收的推送消息,以将所述推送消息展示于所述目标终端中。在本实施例中,建立所述目标终端与所述推送平台之间的信息传输通道,当目标用户上线之后,由所述目标终端通过所述信息传输通道从所述推送平台的缓存中主动拉取当前未接收的推送消息,然后再将拉取得到的推送消息展示于所述目标终端中,从而实现主动发送请求拉取未接收到的推送消息,进一步确保推送消息可靠到达客户端。
在一些实施例中,请参阅图4,图4为本发明实施例提供的消息推送方法中实现用户终端主动拉取推送消息时的一种方法流程示意图。
如图4所示,在一些实施例中,所述步骤S400还包括步骤S410至步骤S430。其中,S410:接收所述目标终端发送至所述推送平台的推送消息拉取请求,所述拉取请求中具有目标终端标识;S420:根据所述目标终端标识在所述推送平台的缓存中拉取该目标用户端当前未接收的推送消息;S430:将所述拉取得到的推送消息发送至所述目标终端中进行展示。
在本实施例中,推送平台通过接收所述目标终端的发送的推送消息拉取请求,获取所述拉取请求中的目标终端标识,所述目标终端标识为该目标终端的唯一标识,用于识别该目标终端。由于缓存在所述推送平台中的每一条推送消息均设置有与其对应的Msgid标识,将所述推送消息推送至所述目标终端中进行展示之后,可以根据所述Msgid标识将所述目标终端已展示的推送消息从所述推送平台的本地缓存中删除。所以,所述目标终端从所述推送平台的缓存中主动拉取当前未接收的推送消息时,可以根据所述目标终端标识从本地缓存中拉取具有该目标终端标识的推送消息,这些拉取的具有目标终端标识的推送消息即为该目标终端当前未接收到的推送信息。在拉取所述目标终端当前未接收到的推送信息之后,将这些拉取得到的推送消息发送至所述目标终端中进行展示。
上述实施例通过目标终端主动拉取当前未接收到的推送信息,进一步确保推送消息的可靠到达用户终端。
在一些实施例中,请参阅图5,图5为本发明实施例提供的消息推送方法中对缓存的推送消息进行有效期设置的一种方法流程示意图。
如图5所示,在本实施例中,所述步骤S100之后,还可以包括步骤S150至步骤S170。其中,S150:对所述推送平台缓存的推送消息进行有效期设置;S160:将所述有效期与当前时间进行比对,判断所述推送消息是否已失效;S170:当判断出所述推送消息已失效时,将所述推送消息从所述推送平台的缓存中删除。
在本实施例中,当所述推送平台接收到推送消息并对所述推送消息进行缓存之后,按照预设的期限规则对所述缓存的推送消息进行有效期设置。例如,所述推送平台中设置推送消息缓存的有效期为三天,则若所述推送平台接收到某条推送消息的时间为2018年11月30日09点30分,那么设置该条推送消息的有效期至2018年12月03日09点30分。在所述推送平台中设置计时单元并实时监听所述计时单元的当前时间,将所述推送消息的有效期时间与实时监听的当前时间进行比对,当所述实时监听的当前时间到达所述推送消息的有效期时间时,判断该推送消息已失效,进而将所述推送消息从所述推送平台的本地缓存中删除。
上述实施例通过对所述推送平台中缓存的推送消息进行有效期设置,一旦推送消息失效,则从所述推送平台的本地缓存中删除,以使得目标终端在主动拉取当前未接收到的推送消息时不会拉取到过时的推送消息,保证推送消息的实时有效性。
为解决上述技术问题本发明实施例还提供一种消息推送装置。具体请参阅图6,图6为本发明实施例提供的消息推送装置基本结构框图。
如图6所示,一种消息推送装置,包括:接收模块、处理模块以及执行模块。其中,所述接收模块用于接收推送消息并对所述推送消息进行缓存,所述推送消息为待推送至目标终端的推送消息;所述处理模块用于识别所述目标终端的运行状态,以根据所述目标终端的运行状态获取对应的消息推送方式;所述执行模块用于根据所述获取的消息推送方式将所述推送消息推送至所述目标终端中进行展示。
上述实施例所述的消息推送装置通过在预先设置一个推送平台,当应用程序APP后台服务器将推送消息下发给用户终端进行实时推送时,先将所述推送消息缓存至所述推送平台本地,然后识别所述推送消息对应目标终端的运行状态,并根据目标终端当前的运行状态获取对应的消息推送方式,再根据对应消息推送方式将所述推送消息推送至所述目标终端中进行展示。这样一来,避免了因网络问题导致丢失推送消息而无法完全保证推送消息最终一定送达至客户端的情况,解决了难以统计消息推送的真实到达率的问题。
在一些实施例中,所述信息推送方式包括与在线状态相对应的直接推送方式和与离线状态相对应的第三方推送方式;所述装置还包括:第一执行子模块和第二执行子模块。其中,所述第一执行子模块用于当所述目标终端的运行状态为在线状态时,以直接推送的方式将所述推送消息推送至所述目标终端中进行展示;所述第二执行子模块用于当所述目标终端的运行状态为离线状态时,以第三方推送的方式将所述推送消息推送至所述目标终端中进行展示。
在一些实施例中,所述推送消息包括目标推送内容和目标终端标识,所述的消息推送装置还包括:第一提取子模块、第一验证子模块、第一处理子模块和第二处理子模块。其中,所述第一提取子模块用于提取所述推送消息中的目标推送内容和目标终端标识;所述第一验证子模块用于将所述目标推送内容与所述推送平台中已缓存的推送内容进行比对,以验证所述目标推送内容是否与所述推送平台中已缓存的推送内容一致;所述第一处理子模块用于当所述目标推送内容与所述推送平台中已缓存的推送内容一致时,将所述目标终端标识添加至与所述推送平台中已缓存的推送内容具有映射关系的推送列表中;所述第二处理子模块用于当所述目标推送内容与所述推送平台中已缓存的推送内容不一致时,将所述目标推送内容缓存至所述推送平台以及在所述推送平台中建立与所述目标推送内容具有映射关系的推送列表,并将所述目标终端标识添加至该推送列表中。
在一些实施例中,所述的消息推送装置还包括:第一计算子模块。所述第一计算子模块用于对所述目标推送内容进行签名算法计算,并以签名值为存储结构将所述推送内容缓存至推送平台中。
在一些实施例中,所述的消息推送装置还包括:第一关联子模块。所述第一关联子模块用于将表征推送消息来源的应用程序ID关联于所述推送消息,以使得所述推送平台支持多个应用程序的消息推送。
在一些实施例中,缓存在所述推送平台中的每一条推送消息均设置有与其对应的Msgid标识,所述的消息推送装置还包括:第一接收子模块和第一删除子模块。其中,所述第一接收子模块用于接收所述目标终端返回的表征推送消息已送达的确认指令,所述确认指令中具有所述推送消息对应的Msgid标识;所述第一删除子模块用于根据所述Msgid标识遍历所述推送平台缓存的推送消息,将所述Msgid标识对应的推送消息从所述推送平台缓存中删除。
在一些实施例中,所述的消息推送装置还包括:第一建立子模块。所述第一建立子模块用于建立所述目标终端与所述推送平台之间的信息传输通道,以使得所述目标终端通过所述信息传输通道从所述推送平台的缓存中主动拉取当前未接收的推送消息,以将所述推送消息展示于所述目标终端中。
在一些实施例中,所述的消息推送装置还包括:第二接收子模块、第一拉取子模块和第三执行子模块。其中,所述第二接收子模块用于接收所述目标终端发送至所述推送平台的推送消息拉取请求,所述拉取请求中具有目标终端标识;所述第一拉取子模块用于根据所述目标终端标识在所述推送平台的缓存中拉取该目标用户端当前未接收的推送消息;所述第三执行子模块用于将所述拉取得到的推送消息发送至所述目标终端中进行展示。
在一些实施例中,所述的消息推送装置还包括:第一设置子模块、第一比对子模块和第二删除子模块。其中,所述第一设置子模块用于对所述推送平台缓存的推送消息进行有效期设置;所述第一比对子模块用于将所述有效期与当前时间进行比对,判断所述推送消息是否已失效;所述第二删除子模块,用于当判断出所述推送消息已失效时,将所述推送消息从所述推送平台的本地缓存中删除。
为解决上述技术问题,本发明实施例还提供了一种计算机设备。具体请参阅图7,图7为本发明实施例提供的计算机设备基本结构框图。
如图7所示,计算机设备的内部结构示意图。如图7所示,该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种消息推送方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种消息推送方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在本实施例中,所述处理器用于执行图6中接收模块10、处理模块20和执行模块30的具体功能,而所述存储器存储有执行上述模块所需的程序代码和各类数据。所述网络接口用于向用户终端或服务器之间的数据传输。本实施例中的存储器存储有消息推送装置中执行所有子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
上述实施例所述的计算机设备通过在将所述待推送信息推送至所述目标终端中进行展示之前先将所述待推送信息存储于预设的推送平台本地中,避免了因网络问题导致丢失推送信息而无法完全保证推送信息最终一定送达至客户端的情况,解决了难以统计消息推送的真实到达率的问题。而且通过建立所述目标终端与所述推送平台之间的信息传输通道,以使得目标终端可以从所述推送平台中主动拉取当前未接收的待推送信息,确保推送消息的可靠到达用户终端。进一步地,将表征所述待推送信息来源的应用程序ID添加至所述待推送信息中,以在将所述待推送信息推送至所述目标终端中进行展示时,同时展示所述待推送信息来源的应用程序ID,这样一来,可以支持多个应用程序在一套推送系统进行消息推送,降低系统的维护成本。
本发明还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例所述消息推送方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种消息推送方法,其特征在于,包括:
推送平台接收由应用程序的服务器发送的推送消息,并解析所述推送消息,得到所述推送消息对应的推送内容和目标终端标识;
对所述推送消息进行缓存,包括:提取所述推送消息中的目标推送内容和目标终端标识;将所述目标推送内容与所述推送平台中已缓存的推送内容进行比对,以验证所述目标推送内容是否与所述推送平台中已缓存的推送内容一致;当所述目标推送内容与所述推送平台中已缓存的推送内容一致时,将所述目标终端标识添加至与所述推送平台中已缓存的推送内容具有映射关系的推送列表中;当所述目标推送内容与所述推送平台中已缓存的推送内容不一致时,将所述目标推送内容缓存至所述推送平台以及在所述推送平台中建立与所述目标推送内容具有映射关系的推送列表,并将所述目标终端标识添加至该推送列表中;其中,将所述目标推送内容缓存至所述推送平台时,还包括:对所述目标推送内容进行签名算法计算,并以签名值为存储结构将所述推送内容缓存至推送平台中;
基于目标终端标识识别所述目标终端的运行状态;
根据所述目标终端的运行状态获取对应的消息推送方式,并以获取到的消息推送方式将所述推送消息推送至所述目标终端中进行展示,包括:
当所述目标终端的运行状态为在线状态时,以直接推送的方式将所述推送消息推送至所述目标终端中进行展示;
当所述目标终端的运行状态为离线状态时,推送平台采用第三方推送的方式将所述推送消息推送至所述目标终端中进行展示。
2.根据权利要求1所述的消息推送方法,其特征在于,推送平台在接收推送消息并对所述推送消息进行缓存之后,还包括:
将表征推送消息来源的应用程序ID关联于所述推送消息,以使得所述推送平台支持多个应用程序的消息推送。
3.根据权利要求1所述消息推送方法,其特征在于,缓存在所述推送平台中的每一条推送消息均设置有与其对应的Msgid标识,将所述推送消息推送至所述目标终端中进行展示之后,还包括:
接收所述目标终端返回的表征推送消息已送达的确认指令,所述确认指令中具有所述推送消息对应的Msgid标识;
根据所述Msgid标识遍历所述推送平台缓存的推送消息,将所述Msgid标识对应的推送消息从所述推送平台缓存中删除。
4.根据权利要求3所述的消息推送方法,其特征在于,还包括:
建立所述目标终端与所述推送平台之间的信息传输通道,以使得所述目标终端通过所述信息传输通道从所述推送平台的缓存中主动拉取当前未接收的推送消息,以将所述推送消息展示于所述目标终端中。
5.根据权利要求4所述的消息推送方法,其特征在于,当所述目标终端从所述推送平台的缓存中主动拉取当前未接收的推送消息时,还包括:
接收所述目标终端发送至所述推送平台的推送消息拉取请求,所述拉取请求中具有目标终端标识;
根据所述目标终端标识在所述推送平台的缓存中拉取该目标终端当前未接收的推送消息;
将所述拉取得到的推送消息发送至所述目标终端中进行展示。
6.根据权利要求5所述的消息推送方法,其特征在于,接收推送消息并对所述推送消息进行缓存之后,还包括:
对所述推送平台缓存的推送消息进行有效期设置;
将所述有效期与当前时间进行比对,判断所述推送消息是否已失效;
当判断出所述推送消息已失效时,将所述推送消息从所述推送平台的本地缓存中删除。
7.一种消息推送装置,其特征在于,包括:
接收模块,用于推送平台接收由应用程序的服务器发送的推送消息;所述接收模块还用于对对所述推送消息进行缓存,包括:提取所述推送消息中的目标推送内容和目标终端标识;将所述目标推送内容与所述推送平台中已缓存的推送内容进行比对,以验证所述目标推送内容是否与所述推送平台中已缓存的推送内容一致;当所述目标推送内容与所述推送平台中已缓存的推送内容一致时,将所述目标终端标识添加至与所述推送平台中已缓存的推送内容具有映射关系的推送列表中;当所述目标推送内容与所述推送平台中已缓存的推送内容不一致时,将所述目标推送内容缓存至所述推送平台以及在所述推送平台中建立与所述目标推送内容具有映射关系的推送列表,并将所述目标终端标识添加至该推送列表中;其中,将所述目标推送内容缓存至所述推送平台时,还包括:对所述目标推送内容进行签名算法计算,并以签名值为存储结构将所述推送内容缓存至推送平台中;
处理模块,用于解析所述推送消息,得到所述推送消息对应的推送内容和目标终端标识,基于目标终端标识识别所述目标终端的运行状态,以根据所述目标终端的运行状态获取对应的消息推送方式;
执行模块,用于根据获取到的消息推送方式将所述推送消息推送至所述目标终端中进行展示,包括:当所述目标终端的运行状态为在线状态时,以直接推送的方式将所述推送消息推送至所述目标终端中进行展示;当所述目标终端的运行状态为离线状态时,推送平台采用第三方推送的方式将所述推送消息推送至所述目标终端中进行展示。
8.一种消息推送设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至6中任一项权利要求所述消息推送方法的步骤。
9.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至6中任一项权利要求所述消息推送方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811638688.0A CN111385330B (zh) | 2018-12-29 | 2018-12-29 | 消息推送方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811638688.0A CN111385330B (zh) | 2018-12-29 | 2018-12-29 | 消息推送方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111385330A CN111385330A (zh) | 2020-07-07 |
CN111385330B true CN111385330B (zh) | 2024-01-26 |
Family
ID=71222508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811638688.0A Active CN111385330B (zh) | 2018-12-29 | 2018-12-29 | 消息推送方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111385330B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110247963A (zh) * | 2019-05-31 | 2019-09-17 | 北京智慧云行科技有限责任公司 | 一种数据推送方法及系统 |
CN111901619B (zh) * | 2020-07-23 | 2023-10-31 | 北京达佳互联信息技术有限公司 | 一种消息推送方法和装置 |
CN111835624B (zh) * | 2020-07-24 | 2022-03-11 | 深圳市和讯华谷信息技术有限公司 | 应用内消息分发方法、装置、计算机设备及存储介质 |
CN113204440A (zh) * | 2021-04-29 | 2021-08-03 | 北京达佳互联信息技术有限公司 | 消息发送方法、装置、电子设备及存储介质 |
CN113360774A (zh) * | 2021-07-08 | 2021-09-07 | 海尔数字科技(青岛)有限公司 | 一种消息推送方法、装置、服务器和存储介质 |
CN113556352B (zh) * | 2021-07-27 | 2022-10-28 | 北京字跳网络技术有限公司 | 一种信息推送方法、装置、终端设备及存储介质 |
CN113535274A (zh) * | 2021-07-30 | 2021-10-22 | 北京字跳网络技术有限公司 | 首位资源显示方法、装置、电子设备及存储介质 |
CN114095583A (zh) * | 2021-10-28 | 2022-02-25 | 翌飞锐特电子商务(北京)有限公司 | 一种航空货物电子数据交换方法 |
CN114449036B (zh) * | 2021-12-27 | 2023-06-23 | 天翼云科技有限公司 | 一种定向分发消息的方法、装置及计算机设备 |
CN117082133B (zh) * | 2023-10-17 | 2023-12-29 | 吉牛云(吉林)农业科技集团有限公司 | 一种基于云服务的行业政策推送管理系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244844A (zh) * | 2010-05-10 | 2011-11-16 | 华为技术有限公司 | 一种发送彩信的方法,装置和系统 |
CN103327039A (zh) * | 2012-03-20 | 2013-09-25 | 腾讯科技(深圳)有限公司 | 一种消息推送方法及装置、系统 |
CN105530278A (zh) * | 2014-09-30 | 2016-04-27 | 博雅网络游戏开发(深圳)有限公司 | 消息推送方法和装置 |
CN107277181A (zh) * | 2017-08-14 | 2017-10-20 | 深圳市金立通信设备有限公司 | 一种消息推送方法、服务器及消息推送系统 |
CN107566539A (zh) * | 2017-10-30 | 2018-01-09 | 江西博瑞彤芸科技有限公司 | 信息推送方法及系统 |
CN108768775A (zh) * | 2018-05-30 | 2018-11-06 | 努比亚技术有限公司 | 信息处理方法、电子设备及计算机存储介质 |
CN108810116A (zh) * | 2018-05-29 | 2018-11-13 | Oppo广东移动通信有限公司 | 消息处理方法及相关产品 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104767775B (zh) * | 2014-01-06 | 2019-09-17 | 腾讯科技(深圳)有限公司 | 网页应用消息推送方法及系统 |
CN108156205B (zh) * | 2016-12-06 | 2021-01-22 | 阿里巴巴(中国)有限公司 | 消息推送方法、客户端、服务端及可编程设备 |
-
2018
- 2018-12-29 CN CN201811638688.0A patent/CN111385330B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244844A (zh) * | 2010-05-10 | 2011-11-16 | 华为技术有限公司 | 一种发送彩信的方法,装置和系统 |
CN103327039A (zh) * | 2012-03-20 | 2013-09-25 | 腾讯科技(深圳)有限公司 | 一种消息推送方法及装置、系统 |
CN105530278A (zh) * | 2014-09-30 | 2016-04-27 | 博雅网络游戏开发(深圳)有限公司 | 消息推送方法和装置 |
CN107277181A (zh) * | 2017-08-14 | 2017-10-20 | 深圳市金立通信设备有限公司 | 一种消息推送方法、服务器及消息推送系统 |
CN107566539A (zh) * | 2017-10-30 | 2018-01-09 | 江西博瑞彤芸科技有限公司 | 信息推送方法及系统 |
CN108810116A (zh) * | 2018-05-29 | 2018-11-13 | Oppo广东移动通信有限公司 | 消息处理方法及相关产品 |
CN108768775A (zh) * | 2018-05-30 | 2018-11-06 | 努比亚技术有限公司 | 信息处理方法、电子设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111385330A (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111385330B (zh) | 消息推送方法、装置、计算机设备及存储介质 | |
CN109474688B (zh) | 即时通信网络请求消息的发送方法、装置、设备和介质 | |
CN108900388B (zh) | 用于监控网络质量的方法、设备及介质 | |
US8943149B2 (en) | Sender motivated optimization of URI rendering in instant messaging | |
CN104468833A (zh) | 请求信息统一处理的方法和装置 | |
CN111209306A (zh) | 业务逻辑判断方法、装置、电子设备和存储介质 | |
CN107689975B (zh) | 一种基于云计算的计算机病毒识别方法及系统 | |
CN112256733A (zh) | 数据缓存方法、装置、电子设备及计算机可读存储介质 | |
CN112486956A (zh) | 数据存取方法、装置和电子设备 | |
CN113449773A (zh) | 模型更新方法、装置、存储介质及电子设备 | |
CN111953666A (zh) | 数据收发方法、装置及数据收发系统 | |
CN114465919B (zh) | 一种网络服务测试方法、系统、电子设备及存储介质 | |
CN116861397A (zh) | 一种请求处理方法、装置、电子设备及计算机可读介质 | |
JP2016092500A (ja) | 被疑箇所推定装置及び被疑箇所推定方法 | |
CN108811036B (zh) | 用于显示无线接入点信息的方法和装置 | |
CN112084114A (zh) | 用于测试接口的方法和装置 | |
CN113364887A (zh) | 一种基于ftp的文件下载方法、代理服务器和系统 | |
CN111897620A (zh) | 交互方法、装置和电子设备 | |
CN111628913A (zh) | 在线时长的确定方法、装置、可读介质和电子设备 | |
CN111259178A (zh) | 图像数据同步方法、装置和系统 | |
CN110262756B (zh) | 用于缓存数据的方法和装置 | |
CN110011767B (zh) | 用于tcp连接备份的方法和装置 | |
CN115935110B (zh) | 大屏数据迁移系统和方法 | |
CN114661728A (zh) | 应用于redis数据库的key记录和管理的方法 | |
CN114925406A (zh) | 数据校验方法、装置及计算机程序产品 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |