CN111464599B - 消息推送方法、系统、装置、计算机可读存储介质及设备 - Google Patents
消息推送方法、系统、装置、计算机可读存储介质及设备 Download PDFInfo
- Publication number
- CN111464599B CN111464599B CN202010201017.9A CN202010201017A CN111464599B CN 111464599 B CN111464599 B CN 111464599B CN 202010201017 A CN202010201017 A CN 202010201017A CN 111464599 B CN111464599 B CN 111464599B
- Authority
- CN
- China
- Prior art keywords
- message
- pushing
- account
- user
- message content
- 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
Images
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/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种消息推送方法、消息推送系统、消息推送装置、计算机可读存储介质及电子设备;涉及计算机技术领域;包括:当接收到消息推送请求时,解析消息推送请求,以确定消息推送请求对应的消息内容和推送范围;存储消息内容和推送范围,并获取推送范围对应的用户账号;其中,仅存储一份消息内容,不对应存储用户账号;向用户账号中的在线账号推送消息内容,并在检测到用户账号中的离线账号上线时,根据推送范围向离线账号推送已存储的消息内容。上述方法可以通过推送范围解决上述问题,若上线的离线用户属于推送范围,则向该用户推送消息内容,无需为每个离线用户存储一份消息内容,这样可以降低后台的存储成本。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种消息推送方法、消息推送系统、消息推送装置、计算机可读存储介质及电子设备。
背景技术
软件开发者通常需要在软件开发上线后向用户推送一些消息,如,固件更新消息、暂停维护消息等。传统的推送方式通常为:开发者将待推送的消息发送至服务器,服务器会将消息先推送给在线用户,为离线用户分别存储一份待推送的消息,当离线用户上线时,服务器会将该用户对应的待推送的消息推送至该用户的客户端。但是,这样会造成大量存储空间被占用的问题,后台存储成本较高。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本申请的目的在于提供一种消息推送方法、消息推送系统、消息推送装置、计算机可读存储介质及电子设备,可以通过推送范围解决上述问题,若上线的离线用户属于推送范围,则向该用户推送消息内容,无需为每个离线用户存储一份消息内容,这样可以降低后台的存储成本。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请的第一方面,提供一种消息推送方法,包括:
当接收到消息推送请求时,解析消息推送请求,以确定消息推送请求对应的消息内容和推送范围;
存储消息内容和推送范围,并获取推送范围对应的用户账号;其中,仅存储一份消息内容,不对应存储用户账号;
向用户账号中的在线账号推送消息内容,并在检测到用户账号中的离线账号上线时,根据推送范围向离线账号推送已存储的消息内容。
在本申请的一种示例性实施例中,在检测到用户账号中的离线账号上线时,根据推送范围向离线账号推送已存储的消息内容,包括:
当检测到由离线状态转换为上线状态的待定用户账号时,获取待定用户账号的标签;
若根据标签检测到待定用户账号属于推送范围,则判定待定用户账号为用户账号中的离线账号;
向离线账号推送已存储的消息内容。
在本申请的一种示例性实施例中,判定待定用户账号为用户账号中的离线账号之前,上述方法还可以包括以下步骤:
若检测到推送范围内不包含标签,则判定待定用户账号属于推送范围;
若检测到推送范围内包含至少一个标签,将待定用户账号的标签与推送范围内的至少一个标签进行比对;若至少一个标签中存在目标标签与待定用户账号的标签相匹配,则判定待定用户账号属于推送范围。
在本申请的一种示例性实施例中,向离线账号推送已存储的消息内容之前,上述方法还可以包括以下步骤:
确定与推送范围对应的消息内容,并拉取消息内容。
在本申请的一种示例性实施例中,向离线账号推送已存储的消息内容,包括:
确定离线账号对应的所有消息内容,所有消息内容中各消息内容对应于不同的消息推送请求;
将所有消息内容根据预设排序规则进行排序;
根据排序结果向离线账号推送所有消息内容。
在本申请的一种示例性实施例中,解析消息推送请求,以确定消息推送请求对应的消息内容和推送范围,包括:
根据服务器协议对消息推送请求进行解析,以确定消息推送请求对应的消息内容和推送范围。
在本申请的一种示例性实施例中,获取推送范围对应的用户账号,包括:
若检测到推送范围内不包含标签,则获取所有的用户账号;
若检测到推送范围内包含至少一个标签,则获取至少一个标签对应的用户账号。
在本申请的一种示例性实施例中,上述方法还可以包括以下步骤:
在检测到消息内容推送操作时,根据消息内容推送操作对应的用户账号更新消息推送请求对应的推送情况。
在本申请的一种示例性实施例中,上述方法还可以包括以下步骤:
在接收到推送报告获取请求时,根据当前的推送情况生成推送报告并反馈推送报告。
在本申请的一种示例性实施例中,存储消息内容和推送范围,包括:
若推送范围内不存在标签,则存储消息内容;
若推送范围内存在至少一个标签,则存储消息内容和推送范围。
根据本申请的第二方面,提供一种消息推送系统,包括第一客户端、第二客户端、用户请求处理服务器、用户账号存储服务器、消息存储服务器、消息扩散服务器、消息拉取服务器以及消息推送服务器,其中:
第一客户端,用于向用户请求处理服务器发送消息推送请求;
用户请求处理服务器,用于接收消息推送请求;解析消息推送请求,以确定消息推送请求对应的消息内容和推送范围;从用户账号存储服务器中获取推送范围对应的用户账号;向消息扩散服务器发送用户账号、消息内容和推送范围;
消息扩散服务器,用于接收用户账号、消息内容和推送范围;向用户账号对应的消息推送服务器发送消息内容;向消息存储服务器发送消息内容和推送范围,以使得消息存储服务器存储消息内容和推送范围;其中,仅存储一份消息内容,不对应存储用户账号;
消息存储服务器,用于接收消息内容和推送范围并存储消息内容和推送范围;
消息推送服务器,用于接收消息内容;向用户账号中在线账号对应的第二客户端推送消息内容;
消息拉取服务器,用于在检测到用户账号中的离线账号上线时,向所述账号对应的第二客户端推送消息存储服务器中已存储的消息内容;
第二客户端,用于接收消息内容;其中,第二客户端包括在线账号对应的第二客户端和离线账号对应的第二客户端。
在本申请的一种示例性实施例中,消息拉取服务器在检测到用户账号中的离线账号上线时,向离线账号对应的第二客户端推送消息存储服务器中已存储的消息内容的方式具体为:
消息拉取服务器,用于当检测到由离线状态转换为上线状态的待定用户账号时,获取待定用户账号的标签;向消息存储服务器发送待定用户账号的标签;
消息存储服务器,用于接收待定用户账号的标签;在根据标签检测到待定用户账号属于消息存储服务器中已存储的推送范围时,判定待定用户账号为用户账号中的离线账号;将消息内容返回消息拉取服务器;
消息拉取服务器,用于向离线账号推送消息内容。
根据本申请的第三方面,提供一种消息推送装置,包括用户请求解析单元、数据存储单元、用户账号获取单元以及消息推送单元,其中:
用户请求解析单元,用于当接收到消息推送请求时,解析消息推送请求,以确定消息推送请求对应的消息内容和推送范围;
数据存储单元,用于存储消息内容和推送范围;其中,仅存储一份消息内容,不对应存储用户账号;
用户账号获取单元,用于获取推送范围对应的用户账号;
消息推送单元,用于向用户账号中的在线账号推送消息内容,并在检测到用户账号中的离线账号上线时,根据推送范围向离线账号推送已存储的消息内容。
在本申请的一种示例性实施例中,消息推送单元在检测到用户账号中的离线账号上线时,根据推送范围向离线账号推送已存储的消息内容的方式具体可以为:
当检测到由离线状态转换为上线状态的待定用户账号时,消息推送单元获取待定用户账号的标签;
若根据标签检测到待定用户账号属于推送范围,消息推送单元判定待定用户账号为用户账号中的离线账号;
消息推送单元向离线账号推送已存储的消息内容。
在本申请的一种示例性实施例中,消息推送单元,还用于在判定待定用户账号为用户账号中的离线账号之前,在检测到推送范围内不包含标签时,判定待定用户账号属于推送范围;
消息推送单元,还用于在检测到推送范围内包含至少一个标签时,将待定用户账号的标签与推送范围内的至少一个标签进行比对;在至少一个标签中存在目标标签与待定用户账号的标签相匹配时,判定待定用户账号属于推送范围。
在本申请的一种示例性实施例中,消息推送单元,还用于向离线账号推送已存储的消息内容之前,确定与推送范围对应的消息内容,并拉取消息内容。
在本申请的一种示例性实施例中,消息推送单元向离线账号推送已存储的消息内容的方式具体可以为:
消息推送单元确定离线账号对应的所有消息内容,所有消息内容中各消息内容对应于不同的消息推送请求;
消息推送单元将所有消息内容根据预设排序规则进行排序;
消息推送单元根据排序结果向离线账号推送所有消息内容。
在本申请的一种示例性实施例中,用户请求解析单元解析消息推送请求,以确定消息推送请求对应的消息内容和推送范围的方式具体可以为:
用户请求解析单元根据服务器协议对消息推送请求进行解析,以确定消息推送请求对应的消息内容和推送范围。
在本申请的一种示例性实施例中,用户账号获取单元获取推送范围对应的用户账号的方式具体可以为:
若检测到推送范围内不包含标签,用户账号获取单元获取所有的用户账号;
若检测到推送范围内包含至少一个标签,用户账号获取单元获取至少一个标签对应的用户账号。
在本申请的一种示例性实施例中,上述装置还可以包括推送情况更新单元,其中:
推送情况更新单元,用于在检测到消息内容推送操作时,根据消息内容推送操作对应的用户账号更新消息推送请求对应的推送情况。
在本申请的一种示例性实施例中,上述装置还可以包括推送报告生成单元,其中:
推送报告生成单元,用于在接收到推送报告获取请求时,根据当前的推送情况生成推送报告并反馈推送报告。
在本申请的一种示例性实施例中,数据存储单元存储消息内容和推送范围的方式具体可以为:
若推送范围内不存在标签,数据存储单元存储消息内容;
若推送范围内存在至少一个标签,数据存储单元存储消息内容和推送范围。
根据本申请的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
根据本申请的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
本申请示例性实施例可以具有以下部分或全部有益效果:
在本申请的一示例实施方式所提供的消息推送方法中,可以当接收到消息推送请求时,解析消息推送请求,以确定消息推送请求对应的消息内容(如,系统暂停维护)和推送范围(如,所有用户);存储消息内容和推送范围,并获取推送范围对应的用户账号;其中,仅存储一份消息内容,不对应存储用户账号;向用户账号中的在线账号推送消息内容,并在检测到用户账号中的离线账号上线时,根据推送范围向离线账号推送已存储的消息内容。依据上述方案描述,本申请一方面能够通过推送范围解决上述问题,若上线的离线用户属于推送范围,则向该用户推送消息内容,无需为每个离线用户存储一份消息内容,这样可以节省后台的存储空间,节省计算资源和流量,从而降低后台的存储成本;另一方面,还能够降低对于服务器的维护成本,提升对于消息内容的推送精度;又一方面,由于对离线账号和在线账号采用了不同推送方式,因此可以降低扩散比,使得每一次消息推送都可以减少一次对于未读消息的存储,进而降低后台负载,从而可以提升推送速度,提升消息到达的实时性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本申请实施例的一种消息推送方法及消息推送装置的示例性系统架构的示意图;
图2示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图;
图3示意性示出了传统的消息推送系统的结构框图;
图4示意性示出了根据本申请的一个实施例的消息推送方法的流程图;
图5示意性示出了根据本申请的另一个实施例的消息推送方法的流程图;
图6示意性示出了根据本申请的一个实施例中的消息推送系统的结构框图;
图7示意性示出了根据本申请的另一个实施例中的消息推送系统的结构框图;
图8示意性示出了根据本申请的又一个实施例中的消息推送系统的结构框图;
图9示意性示出了根据本申请的再一个实施例中的消息推送系统的结构框图;
图10示意性示出了根据本申请的再一个实施例中的消息推送系统的结构框图;
图11示意性示出了根据本申请的一个实施例中的消息推送装置的结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本申请的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本申请的各方面变得模糊。
此外,附图仅为本申请的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了可以应用本申请实施例的一种消息推送方法及消息推送装置的示例性应用环境的系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。
本申请实施例所提供的消息推送方法一般由终端设备101、102或103执行,相应地,消息推送装置一般设置于终端设备101、102或103中。但本领域技术人员容易理解的是,本申请实施例所提供的消息推送方法也可以由服务器105执行,相应的,消息推送装置也可以设置于服务器105中,本示例性实施例中对此不做特殊限定。举例而言,在一种示例性实施例中,服务器105可以当接收到消息推送请求时,解析消息推送请求,以确定消息推送请求对应的消息内容和推送范围;存储消息内容和推送范围,并获取推送范围对应的用户账号;向用户账号中的在线账号推送消息内容,并在检测到用户账号中的离线账号上线时,根据推送范围向离线账号推送已存储的消息内容。
图2示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图2示出的电子设备的计算机系统200仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图2所示,计算机系统200包括中央处理单元(CPU)201,其可以根据存储在只读存储器(ROM)202中的程序或者从存储部分208加载到随机访问存储器(RAM)203中的程序而执行各种适当的动作和处理。在RAM 203中,还存储有系统操作所需的各种程序和数据。CPU201、ROM 202以及RAM 203通过总线204彼此相连。输入/输出(I/O)接口205也连接至总线204。
以下部件连接至I/O接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分207;包括硬盘等的存储部分208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至I/O接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入存储部分208。
特别地,根据本申请的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(CPU)201执行时,执行本申请的方法和装置中限定的各种功能。
软件开发者能够向用户推送消息,客户也可以调用软件开发者提供的推送接口,向对应软件下的所有用户或具有某些标签的用户实时推送消息。为了保证消息的可靠性及触达率,这些消息必须存储于后台的离线消息存储数据库。当用户离线时,重新上线就可以从离线消息存储数据库拉取到这些消息。目前,对于每个用户而言,都需要单独存储一份相同内容的消息,而这样容易对存储空间和计算资源造成浪费。
请参阅图3,图3示意性示出了传统的消息推送系统的结构框图。如图3所示,传统的消息推送系统300包括:第一客户端301、用户请求处理服务器302、用户账号存储服务器303、消息扩散服务器304、消息存储服务器305、消息推送服务器306以及第二客户端307。其中,消息存储服务器305中包括用户1对应的存储空间、用户2对应的存储空间、……以及用户N对应的存储空间;N大于等于3,N为正整数。
具体地,第一客户端301用于向用户请求处理服务器302发送消息推送请求。用户请求处理服务器302用于接收消息推送请求;解析消息推送请求,以确定消息推送请求对应的消息内容(如,妇女节大促销即将开始)和推送范围(如,标签为女性的用户);从用户账号存储服务器303中拉取推送范围对应的用户账号(如,标签为女性的用户A、标签为女性的用户B以及标签为女性的用户C),其中,用户账号存储服务器303用于存储所有的用户账号。另外,用户请求处理服务器302还可以向消息扩散服务器304发送用户账号(如,用户A的账号、用户B的账号以及用户C的账号)和消息内容(如,妇女节大促销即将开始)。消息扩散服务器304可以接收用户账号和消息内容;向用户账号(即,用户A的账号、用户B的账号以及用户C的账号)分别对应的消息推送服务器306扩散消息内容,以及,向消息存储服务器305中各用户对应的存储空间分别上传消息内容,以使得消息存储服务器305中各用户对应的存储空间(即,用户A对应的存储空间、用户B对应的存储空间以及用户C对应的存储空间)分别存储消息内容(即,妇女节大促销即将开始),其中,消息推送服务器306可以为一个或多个,如果为多个,不同的消息推送服务器306对应于不同的第二客户端307,第二客户端307可以为终端,如,手机、个人电脑等。消息存储服务器305可以用于接收消息内容并将消息内容分别存储至推送范围内各个用户的存储空间内,而这样容易造成同一消息被重复存储了多次的问题。进而,消息推送服务器306可以向用户账号中在线账号对应的第二客户端307推送消息内容,其中,第二客户端307用于接收消息内容。当用户账号中的离线账号上线时,将该离线账号在消息存储服务器305中对应的存储空间的消息内容进行拉取并将消息内容推送至该离线账号对应的第二客户端。举例来说,若用户A和用户B均属于推送范围内的用户,而用户A和用户B均处于离线状态,现有技术则会将需要推送的消息内容(如,妇女节大促销即将开始)存储至用户A和用户B分别对应的存储空间内,即,用户A的存储空间中存储了上述的消息内容,用户B的存储空间中也存储了上述的消息内容,而用户A和用户B的存储空间均属于消息存储服务器305。当用户A上线时,可以直接拉取存储空间中的消息内容进行推送,当用户B上线时,也可以直接拉取存储空间中的消息内容进行推送。但是,如果处于离线状态的用户较多时,可能会存在消息存储服务器305中存储了较多重复消息的问题,而这一问题会占用较多的存储空间,容易造成存储空间浪费。
基于上述一个或多个问题,本示例实施方式提供了一种消息推送方法。该消息推送方法可以应用于上述服务器105,也可以应用于上述终端设备101、102、103中的一个或多个,本示例性实施例中对此不做特殊限定。参考图4所示,该消息推送方法可以包括以下步骤S410至步骤S430:
步骤S410:当接收到消息推送请求时,解析消息推送请求,以确定消息推送请求对应的消息内容和推送范围。
步骤S420:存储消息内容和推送范围,并获取推送范围对应的用户账号;其中,仅存储一份消息内容,不对应存储用户账号。
步骤S430:向用户账号中的在线账号推送消息内容,并在检测到用户账号中的离线账号上线时,根据推送范围向离线账号推送已存储的消息内容。
下面,对于本示例实施方式的上述步骤进行更加详细的说明。
在步骤S410中,当接收到消息推送请求时,解析消息推送请求,以确定消息推送请求对应的消息内容和推送范围。
其中,消息推送请求可以是由开发者客户端(即,上述的第一客户端)发送的,消息推送请求中可以包括待推送的消息内容(如,XX品牌抢购活动今晚12点开始)以及推送范围,推送范围中可以不包括用户标签也可以包括至少一个用户标签,一个用户标签可以用于代表一个用户或一种用户群体(如,老年用户),其中,若推送范围中不包括用户标签,则该推送范围用于表示消息内容需推送给所有用户;若推送范围中包括至少一个用户标签,则该推送范围用于表示消息内容需推送给至少一个用户标签所对应的用户。
本申请实施例中,可选的,解析消息推送请求,以确定消息推送请求对应的消息内容和推送范围,包括:根据服务器协议对消息推送请求进行解析,以确定消息推送请求对应的消息内容和推送范围。
其中,根据服务器协议对消息推送请求进行解析的方式具体可以为:上行处理服务器(即,上述的客户请求处理服务器)解析开发者客户端调用的消息推送请求,消息推送请求可以为REST API请求。其中,REST(Representational State Transfer)为表现层状态转移,用于描述创建的HTTP API,API(Application Programming Interface)是应用程序接口,用于描述一个类库的特征或者运用类库的方法,也可以理解为,预先设定的服务器协议,如,jsn protoduf totobuf。
可见,实施该可选的实施例,能够通过服务器协议将消息推送请求中的部件应用程序转换为适用于当前服务器(即,上述的客户请求处理服务器)的应用程序,从而便于读取消息推送请求对应的消息内容和推送范围。
在步骤S420中,存储消息内容和推送范围,并获取推送范围对应的用户账号;其中,仅存储一份消息内容,不对应存储用户账号。
其中,一个推送范围可以对应一个或多个用户账号,存储消息内容和推送范围的方式可以为:通过键值(key-value)存储方式存储消息内容和推送范围。
本申请实施例中,可选的,存储消息内容和推送范围,包括:
若推送范围内不存在标签,则存储消息内容;
若推送范围内存在至少一个标签,则存储消息内容和推送范围。
其中,推送范围可以为标签集,一个标签可以对应一个或多个用户账户。可选的,在该可选的实施例中,还可以包括以下步骤:检测推送范围是否为空,若为空,则判定推送范围内不存在标签,若不为空,则判定推送范围内存在至少一个标签。
可见,实施该可选的实施例,能够将消息内容和推送范围进行存储,相较于传统的将消息内容存储于不同用户账号的离线服务器中,本申请能够降低对于离线消息的存储成本,进而可以通过对上线用户的标签检测确定出需要推送的消息内容并推送,降低服务器的维护成本。
本申请实施例中,可选的,获取推送范围对应的用户账号,包括:
若检测到推送范围内不包含标签,则获取所有的用户账号;
若检测到推送范围内包含至少一个标签,则获取至少一个标签对应的用户账号。
其中,获取至少一个标签对应的用户账号的方式可以为:将至少一个标签和所有用户账号的预设标签进行比对,将与上述至少一个标签比对一致的预设标签所对应的用户账号确定为与上述至少一个标签对应的用户账号。
可见,实施该可选的实施例,能够通过推送范围确定出待推送的用户账号,提升了消息推送的准确度。
在步骤S430中,向用户账号中的在线账号推送消息内容,并在检测到用户账号中的离线账号上线时,根据推送范围向离线账号推送已存储的消息内容。
其中,向用户账号中的在线账号推送消息内容之前,上述方法还可以包括以下步骤:向各用户账号对应的客户端发送在线检测指令,并将针对于在线检测指令反馈的数据所对应的用户账号确定为在线账号,以及,将未反馈数据的客户端所对应的用户账号确定为离线账号;其中,数据用于表示该用户账号当前在线。
本申请实施例中,可选的,在检测到用户账号中的离线账号上线时,根据推送范围向离线账号推送已存储的消息内容,包括:
当检测到由离线状态转换为上线状态的待定用户账号时,获取待定用户账号的标签;若根据标签检测到待定用户账号属于推送范围,则判定待定用户账号为用户账号中的离线账号;向离线账号推送已存储的消息内容。
其中,在获取待定用户账号之前,上述方法还可以包括以下步骤:接收用户账号的客户端所反馈的用于表示该用户账号上线的数据,并将该用户账号确定为待定用户账号;其中,待定用户账号可以为推送范围内的标签所对应的还未推送消息内容的用户账号。另外,向离线账号推送已存储的消息内容的方式可以为:根据离线账号的标签所属的推送范围从以存储的消息内容中拉取与该推送范围对应的消息内容并推送。
可见,实施该可选的实施例,能够在离线账号上线之后根据其对应的标签确定出待推送的消息内容进行推送,相较于传统的各个账号的离线服务器直接推送消息内容,能够减少服务器的数量,对不同用户账号的待推送消息内容进行统一管理,不仅能够降低对于服务器的维护成本,还能够提升对于消息内容的推送精度。此外,还能够节省后台的存储空间,节省计算资源和流量,从而降低后台的存储成本。此外,由于对离线账号和在线账号采用了不同推送方式,因此可以降低扩散比,使得每一次消息推送都可以减少一次对于未读消息的存储,进而降低后台负载,从而可以提升推送速度,提升消息到达的实时性。
进一步可选的,判定待定用户账号为用户账号中的离线账号之前,上述方法还可以包括以下步骤:
若检测到推送范围内不包含标签,则判定待定用户账号属于推送范围;若检测到推送范围内包含至少一个标签,将待定用户账号的标签与推送范围内的至少一个标签进行比对;若至少一个标签中存在目标标签与待定用户账号的标签相匹配,则判定待定用户账号属于推送范围。
其中,目标标签与待定用户账号的标签相同。
具体地,向离线账号推送已存储的消息内容之前,上述方法还可以包括以下步骤:确定与推送范围对应的消息内容,并拉取消息内容。
可见,实施该可选的实施例,能够通过对于离线账号上线后的标签比对、消息拉取、消息推送,可以保证消息的可靠性及触达率。
本申请实施例中,可选的,向离线账号推送已存储的消息内容,包括:确定离线账号对应的所有消息内容,所有消息内容中各消息内容对应于不同的消息推送请求;将所有消息内容根据预设排序规则进行排序;根据排序结果向离线账号推送所有消息内容。
其中,一个离线账号可以对应一个或多个消息内容,若消息内容为多个,该多个消息内容分别对应于不同的推送范围,即,对应于不同的消息推送请求。另外,预设排序规则可以包括:按照接收到消息推送请求的时间顺序进行排序,或者,按照消息内容的重要等级进行排序等,本申请实施例不作限定。
可见,实施该可选的实施例,能够通过对待推送的消息内容进行排序,按照预先设定的优先级进行推送,改善用户的使用体验,实现消息内容的推送效果。
本申请实施例中,可选的,上述方法还可以包括以下步骤:在检测到消息内容推送操作时,根据消息内容推送操作对应的用户账号更新消息推送请求对应的推送情况。
其中,在根据消息内容推送操作对应的用户账号更新消息推送请求对应的推送情况之前,上述方法还可以包括以下步骤:若检测到向离线账号推送已存储的消息内容或向在线账号推送消息内容,则判定存在消息内容推送操作。另外,推送情况可以包括针对消息推送请求的推送完成度。
可见,实施该可选的实施例,能够通过对于各消息推送请求的推送情况的更新,以便开发者客户端对推送进度进行实时跟进。
进一步可选的,上述方法还可以包括以下步骤:在接收到推送报告获取请求时,根据当前的推送情况生成推送报告并反馈推送报告。
其中,推送报告中可以包括用于表征当前推送进度的不同形式的图表或数据,如,树形图、扇形图等。推送报告获取请求可以由开发者客户端进行发送。
可见,实施该可选的实施例,能够通过对于推送报告的反馈,使得开发者能够及时了解到消息内容的推送情况。
可见,实施图4所示的消息推送方法,能够通过推送范围解决上述问题,若上线的离线用户属于推送范围,则向该用户推送消息内容,无需为每个离线用户存储一份消息内容,这样可以节省后台的存储空间,节省计算资源和流量,从而降低后台的存储成本。此外,还能够降低对于服务器的维护成本,提升对于消息内容的推送精度。此外,由于对离线账号和在线账号采用了不同推送方式,因此可以降低扩散比,使得每一次消息推送都可以减少一次对于未读消息的存储,进而降低后台负载,从而可以提升推送速度,提升消息到达的实时性。
请参阅图5,图5示意性示出了根据本申请的另一个实施例的消息推送方法的流程图。如图5所示,另一个实施例的消息推送方法包括:步骤S500~步骤S532,其中:
步骤S500:当接收到消息推送请求时,根据服务器协议对消息推送请求进行解析,以确定消息推送请求对应的消息内容和推送范围;若推送范围内不存在标签,则执行步骤S502;若推送范围内存在至少一个标签,则执行步骤S504。
步骤S502:存储消息内容,并执行步骤S506。
步骤S504:存储消息内容和推送范围,并执行步骤S508;其中,仅存储一份消息内容,不对应存储用户账号。
步骤S506:获取所有的用户账号,并执行步骤S510。
步骤S508:获取至少一个标签对应的用户账号,并执行步骤S510。
步骤S510:向用户账号中的在线账号推送消息内容。
步骤S512:当检测到由离线状态转换为上线状态的待定用户账号时,获取待定用户账号的标签;若推送范围内不包含标签,则执行步骤S514;若推送范围内包含至少一个标签,则执行步骤S516。
步骤S514:判定待定用户账号属于推送范围,并执行步骤S520。
步骤S516:将待定用户账号的标签与推送范围内的至少一个标签进行比对,并执行步骤S518。
步骤S518:若至少一个标签中存在目标标签与待定用户账号的标签相匹配,则判定待定用户账号属于推送范围,并执行步骤S520。
步骤S520:判定待定用户账号为用户账号中的离线账号。
步骤S522:确定与推送范围对应的消息内容,并拉取消息内容。
步骤S524:确定离线账号对应的所有消息内容,所有消息内容中各消息内容对应于不同的消息推送请求。
步骤S526:将所有消息内容根据预设排序规则进行排序。
步骤S528:根据排序结果向离线账号推送所有消息内容。
步骤S530:在检测到消息内容推送操作时,根据消息内容推送操作对应的用户账号更新消息推送请求对应的推送情况。
步骤S532:在接收到推送报告获取请求时,根据当前的推送情况生成推送报告并反馈推送报告。
需要说明的是,上述步骤S500~步骤S532与图4所示步骤及其实施例相对应,步骤S500~步骤S532的具体实施方式请参阅图4中各步骤对应的可选实施例及其限定,此处不再赘述。
可见,实施图5所示的消息推送方法,能够通过推送范围解决上述问题,若上线的离线用户属于推送范围,则向该用户推送消息内容,无需为每个离线用户存储一份消息内容,这样可以节省后台的存储空间,节省计算资源和流量,从而降低后台的存储成本。此外,还能够降低对于服务器的维护成本,提升对于消息内容的推送精度。此外,由于对离线账号和在线账号采用了不同推送方式,因此可以降低扩散比,使得每一次消息推送都可以减少一次对于未读消息的存储,进而降低后台负载,从而可以提升推送速度,提升消息到达的实时性。
进一步的,本示例实施方式中,还提供了一种消息推送系统。参考图6所示,该消息推送系统600可以包括第一客户端601、第二客户端607、用户请求处理服务器602、用户账号存储服务器604、消息存储服务器603、消息扩散服务器605、消息拉取服务器608以及消息推送服务器606,其中:
第一客户端601,用于向用户请求处理服务器602发送消息推送请求;
用户请求处理服务器602,用于接收消息推送请求;解析消息推送请求,以确定消息推送请求对应的消息内容和推送范围;从用户账号存储服务器604中获取推送范围对应的用户账号;向消息扩散服务器605发送用户账号、消息内容和推送范围;
消息扩散服务器605,用于接收用户账号、消息内容和推送范围;向用户账号对应的消息推送服务器606发送消息内容;向消息存储服务器603发送消息内容和推送范围,以使得消息存储服务器603存储消息内容和推送范围;
消息存储服务器603,用于接收消息内容和推送范围并存储消息内容和推送范围;其中,仅存储一份消息内容,不对应存储用户账号;
消息推送服务器606,用于接收消息内容;向用户账号中在线账号对应的第二客户端607推送消息内容;
消息拉取服务器608,用于在检测到用户账号中的离线账号上线时,向所述账号对应的第二客户端607推送消息存储服务器603中已存储的消息内容;
第二客户端607,用于接收消息内容;其中,第二客户端607包括在线账号对应的第二客户端607和离线账号对应的第二客户端607。
其中,第一客户端601可以为开发者客户端;第二客户端607可以为用户客户端,用户客户端的数量可以为一个或多个;用户请求处理服务器602可以为上行处理服务器,用于解析开发者客户端调用的REST API请求;用户账号存储服务器604用于存储所有的用户账号以及各个用户账号对应的标签;消息存储服务器603用于存储离线的消息内容以及各消息内容对应的推送范围;举例来说,消息存储服务器603中可以存储消息内容A“1月1日进行元旦促销”以及消息内容A对应的推送范围“年龄段在20~40之间的用户”,还可以存储消息内容B“3月8日进行妇女节促销”以及消息内容B对应的推送范围“女性用户”。当符合推送范围的用户上线的时候,消息内容就会被推送给对应的用户,这样,只需要存储一份消息内容与对应的推送范围,就能满足多用户的推送,而不需要为每个用户开辟一个存储空间,并且在每个用户的存储空间里都存对应的消息内容。需要说明的时,消息存储服务器603中可以存储一组或多组数据,每组数据中包括相对应的消息内容和推送范围;消息扩散服务器605用于将消息内容扩散至消息推送服务器606,以及用于将消息内容以及各消息内容对应的推送范围发送至消息存储服务器603,触发消息存储服务器603对其进行存储;消息拉取服务器608用于监控由离线状态转换为上线状态的用户账号,并向各上线状态的用户账号推送与其对应的消息内容;消息推送服务器606用于将消息内容推送给对应的用户客户端(即,第二客户端607)。
可见,实施图6所示的消息推送系统,能够通过推送范围解决上述问题,若上线的离线用户属于推送范围,则向该用户推送消息内容,无需为每个离线用户存储一份消息内容,这样可以节省后台的存储空间,节省计算资源和流量,从而降低后台的存储成本。此外,还能够降低对于服务器的维护成本,提升对于消息内容的推送精度。
本申请实施例中,可选的,消息拉取服务器608在检测到用户账号中的离线账号上线时,向离线账号对应的第二客户端607推送消息存储服务器603中已存储的消息内容的方式具体为:
消息拉取服务器608,用于当检测到由离线状态转换为上线状态的待定用户账号时,获取待定用户账号的标签;向消息存储服务器603发送待定用户账号的标签;
消息存储服务器603,用于接收待定用户账号的标签;在根据标签检测到待定用户账号属于消息存储服务器中已存储的推送范围时,判定待定用户账号为用户账号中的离线账号;将消息内容返回消息拉取服务器608;
消息拉取服务器608,用于向离线账号推送消息内容。
可见,实施该可选的实施例,能够通过推送范围解决上述问题,若上线的离线用户属于推送范围,则向该用户推送消息内容,无需为每个离线用户存储一份消息内容,这样可以节省后台的存储空间,节省计算资源和流量,从而降低后台的存储成本。此外,还能够降低对于服务器的维护成本,提升对于消息内容的推送精度。此外,由于对离线账号和在线账号采用了不同推送方式,因此可以降低扩散比,使得每一次消息推送都可以减少一次对于未读消息的存储,进而降低后台负载,从而可以提升推送速度,提升消息到达的实时性。
请参阅图7,图7示意性示出了根据本申请的另一个实施例中的消息推送系统的结构框图。如图7所示,另一个实施例中的消息推送系统700包括第一客户端701、云服务器702、第二客户端703、第二客户端704、第二客户端705以及第一服务器706;其中,第一服务器706与第一客户端701相对应,若第一客户端701为开发者客户端,那么,第一服务器706则为开发者服务器。另外,结合图6所示的消息推送系统,云服务器702可以包括上述的:用户请求处理服务器602、用户账号存储服务器604、消息存储服务器603、消息扩散服务器605、消息拉取服务器608以及消息推送服务器606。此外,第二客户端703、第二客户端704以及第二客户端705中任一第二客户端可以为移动终端(如,手机),可以为非移动终端(如,个人电脑);需要说明的是,图7所示的第二客户端703、第二客户端704以及第二客户端705可以对应于不同的用户也可以对应于同一用户的不同终端,本申请实施例不作限定,图7所示的第二客户端703、第二客户端704以及第二客户端705仅为示例性示出,实际应用过程中,第二客户端数量不作限定,即,可以为一个或多个。
其中,第一客户端701用于向云服务器702发送消息推送请求。云服务器702用于接收消息推送请求;解析消息推送请求,以确定消息推送请求对应的消息内容和推送范围;获取推送范围对应的用户账号;存储消息内容和推送范围;向用户账号中在线账号对应的第二客户端703、第二客户端704以及第二客户端705中的一个或多个推送消息内容;在检测到用户账号中的离线账号上线时,向所述账号对应的第二客户端703、第二客户端704以及第二客户端705中的一个或多个推送已存储的消息内容。第二客户端703、第二客户端704以及第二客户端705均用于接收消息内容;向第一服务器706上报用于表示已接收到消息内容的数据。例如,当开发者客户端调用REST API发起消息推送请求时,云服务器702可以拉取待推送的用户账号,并将消息存储于消息存储服务器603,进而推送将消息内容推送至第二客户端703、第二客户端704以及第二客户端705。第二客户端703、第二客户端704以及第二客户端705接收到消息内容后可以上报数据至开发者服务器。
可见,实施图7所示的消息推送系统,能够通过推送范围解决上述问题,若上线的离线用户属于推送范围,则向该用户推送消息内容,无需为每个离线用户存储一份消息内容,这样可以节省后台的存储空间,节省计算资源和流量,从而降低后台的存储成本。此外,还能够降低对于服务器的维护成本,提升对于消息内容的推送精度。此外,由于对离线账号和在线账号采用了不同推送方式,因此可以降低扩散比,使得每一次消息推送都可以减少一次对于未读消息的存储,进而降低后台负载,从而可以提升推送速度,提升消息到达的实时性。
结合图7所示的消息推送系统,请参阅图8,图8示意性示出了根据本申请的又一个实施例中的消息推送系统的结构框图。如图8所示,又一个实施例中的消息推送系统800中包括第一客户端801、用户请求处理服务器802、用户账号存储服务器803、消息扩散服务器804、消息存储服务器805、消息推送服务器806以及第二客户端807。
需要说明的是,第一客户端801即图6中的第一客户端601,用户请求处理服务器802即图6中的用户请求处理服务器602,用户账号存储服务器803即图6中的用户账号存储服务器604,消息扩散服务器804即图6中的消息扩散服务器605,消息存储服务器805即图6中的消息存储服务器603,消息推送服务器806即图6中的消息推送服务器606,第二客户端807即图6中的第二客户端607。
具体地,第一客户端801可以向用户请求处理服务器802发送消息推送请求。用户请求处理服务器802用于接收消息推送请求;解析消息推送请求,以确定消息推送请求对应的消息内容和推送范围;从用户账号存储服务器803中拉取推送范围对应的用户账号,其中,用户账号存储服务器803用于存储所有的用户账号。另外,用户请求处理服务器802还可以向消息扩散服务器804发送用户账号、消息内容和推送范围。消息扩散服务器804可以接收用户账号、消息内容和推送范围;向用户账号对应的消息推送服务器806扩散消息内容,以及,向消息存储服务器805发送消息内容和推送范围,以使得消息存储服务器805存储消息内容和推送范围;需要说明的是,对于一种消息内容只存储一次,在存储消息内容时是将消息内容和推送范围进行对应存储的,即就是,一个消息内容对应一个推送范围,在消息存储服务器805中,不存储推送范围内的用户账号,在离线账号上线时,只需要判断该离线账号是否属于推送范围即可进一步推断出是否需要向其推送消息内容,相较于现有技术需要为每个离线账号存储一份消息内容,本申请能够减少对于存储空间的占用,一定程度上避免浪费存储空间的问题;其中,消息推送服务器806可以为一个或多个,如果为多个,不同的消息推送服务器806对应于不同的第二客户端807,第二客户端807可以为终端,如,手机、个人电脑等。消息存储服务器805可以用于接收消息内容和推送范围并存储消息内容和推送范围。进而,消息推送服务器806可以向用户账号中在线账号对应的第二客户端807推送消息内容,其中,第二客户端807用于接收消息内容。
例如,
可见,实施图8所示的消息推送系统,能够通过推送范围解决上述问题,若上线的离线用户属于推送范围,则向该用户推送消息内容,无需为每个离线用户存储一份消息内容,这样可以节省后台的存储空间,节省计算资源和流量,从而降低后台的存储成本。此外,还能够降低对于服务器的维护成本,提升对于消息内容的推送精度。此外,由于对离线账号和在线账号采用了不同推送方式,因此可以降低扩散比,使得每一次消息推送都可以减少一次对于未读消息的存储,进而降低后台负载,从而可以提升推送速度,提升消息到达的实时性。
结合图7~图8所示的消息推送系统,请参阅图9,图9示意性示出了根据本申请的再一个实施例中的消息推送系统的结构框图。如图9所示,再一个实施例中的消息推送系统900包括消息拉取服务器901、用户账号存储服务器902、消息存储服务器903以及第二客户端904。其中,消息拉取服务器901即图6中的消息拉取服务器608,用户账号存储服务器902即图6中的用户账号存储服务器604,消息存储服务器903即图6中的消息存储服务器603,第二客户端904即图6中的第二客户端607。
具体地,当消息拉取服务器可以接收由第二客户端904反馈的上线数据,当接收到上线数据时,可以判定该第二客户端由离线状态转换为上线状态,进而可以从用户账号存储服务器902中拉取待定用户账号(即,上线的第二客户端904)的标签,并从消息存储服务器603中拉取待定用户账号的标签,向该第二客户端904推送消息内容;需要说明的是,图9中所示的第二客户端904为示例性示出,在实际应用过程中,对第二客户端的类型和数量不作限定。
可见,实施图9所示的消息推送系统,能够通过推送范围解决上述问题,若上线的离线用户属于推送范围,则向该用户推送消息内容,无需为每个离线用户存储一份消息内容,这样可以节省后台的存储空间,节省计算资源和流量,从而降低后台的存储成本。此外,还能够降低对于服务器的维护成本,提升对于消息内容的推送精度。此外,由于对离线账号和在线账号采用了不同推送方式,因此可以降低扩散比,使得每一次消息推送都可以减少一次对于未读消息的存储,进而降低后台负载,从而可以提升推送速度,提升消息到达的实时性。
结合图7~图9所示的消息推送系统,请参阅图10,图10示意性示出了根据本申请的再一个实施例中的消息推送系统的结构框图。再一个实施例中的消息推送系统1000包括第一客户端1001、第二客户端1006、用户请求处理服务器1002、用户账号存储服务器1003、消息存储服务器1008、消息扩散服务器1004、消息拉取服务器1007以及消息推送服务器1005。
其中,第一客户端1001用于向用户请求处理服务器1002发送消息推送请求。用户请求处理服务器1002用于接收消息推送请求;解析消息推送请求,以确定消息推送请求对应的消息内容和推送范围;从用户账号存储服务器1003中拉取推送范围对应的用户账号;向消息扩散服务器1004发送用户账号、消息内容和推送范围。消息扩散服务器1004用于接收用户账号、消息内容和推送范围;向用户账号对应的消息推送服务器1005发送消息内容;向消息存储服务器1008发送消息内容和推送范围,以使得消息存储服务器1008存储消息内容和推送范围。消息存储服务器1008用于接收消息内容和推送范围并存储消息内容和推送范围;其中,仅存储一份消息内容,不对应存储用户账号。消息推送服务器1005用于接收消息内容;向用户账号中在线账号对应的第二客户端1006推送消息内容。消息拉取服务器1007用于在检测到用户账号中的离线账号上线时,从消息存储服务器1008中拉取离线账号的标签,向对应的第二客户端1006推送消息内容。第二客户端1006用于接收消息内容;其中,第二客户端1006包括在线账号对应的第二客户端和离线账号对应的第二客户端。
可见,实施图10所示的消息推送系统,能够通过推送范围解决上述问题,若上线的离线用户属于推送范围,则向该用户推送消息内容,无需为每个离线用户存储一份消息内容,这样可以节省后台的存储空间,节省计算资源和流量,从而降低后台的存储成本。此外,还能够降低对于服务器的维护成本,提升对于消息内容的推送精度。此外,由于对离线账号和在线账号采用了不同推送方式,因此可以降低扩散比,使得每一次消息推送都可以减少一次对于未读消息的存储,进而降低后台负载,从而可以提升推送速度,提升消息到达的实时性。
由于本申请的示例实施例的消息推送系统的各个功能模块与上述消息推送方法的示例实施例的步骤对应,因此对于本申请系统实施例中未披露的细节,请参照本申请上述的消息推送方法的实施例。
更进一步的,本示例实施方式中,还提供了一种消息推送装置。参考图11所示,该消息推送装置1100可以包括用户请求解析单元1101、数据存储单元1102、用户账号获取单元1103以及消息推送单元1104,其中:
用户请求解析单元1101,用于当接收到消息推送请求时,解析消息推送请求,以确定消息推送请求对应的消息内容和推送范围;
数据存储单元1102,用于存储消息内容和推送范围;其中,仅存储一份消息内容,不对应存储用户账号;
用户账号获取单元1103,用于获取推送范围对应的用户账号;
消息推送单元1104,用于向用户账号中的在线账号推送消息内容,并在检测到用户账号中的离线账号上线时,根据推送范围向离线账号推送已存储的消息内容。
可见,实施图11所示的消息推送装置,能够通过推送范围解决上述问题,若上线的离线用户属于推送范围,则向该用户推送消息内容,无需为每个离线用户存储一份消息内容,这样可以节省后台的存储空间,节省计算资源和流量,从而降低后台的存储成本。此外,还能够降低对于服务器的维护成本,提升对于消息内容的推送精度。此外,由于对离线账号和在线账号采用了不同推送方式,因此可以降低扩散比,使得每一次消息推送都可以减少一次对于未读消息的存储,进而降低后台负载,从而可以提升推送速度,提升消息到达的实时性。
在本申请的一种示例性实施例中,消息推送单元1104在检测到用户账号中的离线账号上线时,根据推送范围向离线账号推送已存储的消息内容的方式具体可以为:
当检测到由离线状态转换为上线状态的待定用户账号时,消息推送单元1104获取待定用户账号的标签;
若根据标签检测到待定用户账号属于推送范围,消息推送单元1104判定待定用户账号为用户账号中的离线账号;
消息推送单元1104向离线账号推送已存储的消息内容。
可见,实施该可选的实施例,能够在离线账号上线之后根据其对应的标签确定出待推送的消息内容进行推送,相较于传统的各个账号的离线服务器直接推送消息内容,能够减少服务器的数量,对不同用户账号的待推送消息内容进行统一管理,不仅能够降低对于服务器的维护成本,还能够提升对于消息内容的推送精度。此外,还能够节省后台的存储空间,节省计算资源和流量,从而降低后台的存储成本。此外,由于对离线账号和在线账号采用了不同推送方式,因此可以降低扩散比,使得每一次消息推送都可以减少一次对于未读消息的存储,进而降低后台负载,从而可以提升推送速度,提升消息到达的实时性。
在本申请的一种示例性实施例中,消息推送单元1104,还用于在判定待定用户账号为用户账号中的离线账号之前,在检测到推送范围内不包含标签时,判定待定用户账号属于推送范围;
消息推送单元1104,还用于在检测到推送范围内包含至少一个标签时,将待定用户账号的标签与推送范围内的至少一个标签进行比对;在至少一个标签中存在目标标签与待定用户账号的标签相匹配时,判定待定用户账号属于推送范围。
其中,消息推送单元1104,还用于向离线账号推送已存储的消息内容之前,确定与推送范围对应的消息内容,并拉取消息内容。
可见,实施该可选的实施例,能够通过对于离线账号上线后的标签比对、消息拉取、消息推送,可以保证消息的可靠性及触达率。
在本申请的一种示例性实施例中,消息推送单元1104向离线账号推送已存储的消息内容的方式具体可以为:
消息推送单元1104确定离线账号对应的所有消息内容,所有消息内容中各消息内容对应于不同的消息推送请求;
消息推送单元1104将所有消息内容根据预设排序规则进行排序;
消息推送单元1104根据排序结果向离线账号推送所有消息内容。
可见,实施该可选的实施例,能够通过对待推送的消息内容进行排序,按照预先设定的优先级进行推送,改善用户的使用体验,实现消息内容的推送效果。
在本申请的一种示例性实施例中,用户请求解析单元1101解析消息推送请求,以确定消息推送请求对应的消息内容和推送范围的方式具体可以为:
用户请求解析单元1101根据服务器协议对消息推送请求进行解析,以确定消息推送请求对应的消息内容和推送范围。
可见,实施该可选的实施例,能够通过服务器协议将消息推送请求中的部件应用程序转换为适用于当前服务器(即,上述的客户请求处理服务器)的应用程序,从而便于读取消息推送请求对应的消息内容和推送范围。
在本申请的一种示例性实施例中,用户账号获取单元1103获取推送范围对应的用户账号的方式具体可以为:
若检测到推送范围内不包含标签,用户账号获取单元1103获取所有的用户账号;
若检测到推送范围内包含至少一个标签,用户账号获取单元1103获取至少一个标签对应的用户账号。
可见,实施该可选的实施例,能够通过推送范围确定出待推送的用户账号,提升了消息推送的准确度。
在本申请的一种示例性实施例中,上述装置还可以包括推送情况更新单元(未图示),其中:
推送情况更新单元,用于在检测到消息内容推送操作时,根据消息内容推送操作对应的用户账号更新消息推送请求对应的推送情况。
可见,实施该可选的实施例,能够通过对于各消息推送请求的推送情况的更新,以便开发者客户端对推送进度进行实时跟进。
在本申请的一种示例性实施例中,上述装置还可以包括推送报告生成单元(未图示),其中:
推送报告生成单元,用于在接收到推送报告获取请求时,根据当前的推送情况生成推送报告并反馈推送报告。
可见,实施该可选的实施例,能够通过对于推送报告的反馈,使得开发者能够及时了解到消息内容的推送情况。
在本申请的一种示例性实施例中,数据存储单元1102存储消息内容和推送范围的方式具体可以为:
若推送范围内不存在标签,数据存储单元1102存储消息内容;
若推送范围内存在至少一个标签,数据存储单元1102存储消息内容和推送范围。
可见,实施该可选的实施例,能够将消息内容和推送范围进行存储,相较于传统的将消息内容存储于不同用户账号的离线服务器中,本申请能够降低对于离线消息的存储成本,进而可以通过对上线用户的标签检测确定出需要推送的消息内容并推送,降低服务器的维护成本。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
由于本申请的示例实施例的消息推送装置的各个功能模块与上述消息推送方法的示例实施例的步骤对应,因此对于本申请装置实施例中未披露的细节,请参照本申请上述的消息推送方法的实施例。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (15)
1.一种消息推送方法,其特征在于,所述方法包括:
当接收到消息推送请求时,解析所述消息推送请求,以确定所述消息推送请求对应的消息内容和推送范围;
存储所述消息内容和所述推送范围,并获取所述推送范围对应的用户账号;其中,仅存储一份所述消息内容,不对应存储所述用户账号;
向所述用户账号中的在线账号推送所述消息内容,并在检测到所述用户账号中的离线账号上线时,根据所述推送范围向所述离线账号推送已存储的所述消息内容。
2.根据权利要求1所述的方法,其特征在于,在检测到所述用户账号中的离线账号上线时,根据所述推送范围向所述离线账号推送已存储的所述消息内容,包括:
当检测到由离线状态转换为上线状态的待定用户账号时,获取所述待定用户账号的标签;
若根据所述标签检测到所述待定用户账号属于所述推送范围,则判定所述待定用户账号为所述用户账号中的离线账号;
向所述离线账号推送已存储的所述消息内容。
3.根据权利要求2所述的方法,其特征在于,判定所述待定用户账号为所述用户账号中的离线账号之前,所述方法还包括:
若检测到所述推送范围内不包含标签,则判定所述待定用户账号属于所述推送范围;
若检测到所述推送范围内包含至少一个标签,将所述待定用户账号的标签与所述推送范围内的至少一个标签进行比对;若所述至少一个标签中存在目标标签与所述待定用户账号的标签相匹配,则判定所述待定用户账号属于所述推送范围。
4.根据权利要求2所述的方法,其特征在于,向所述离线账号推送已存储的所述消息内容之前,所述方法还包括:
确定与所述推送范围对应的所述消息内容,并拉取所述消息内容。
5.根据权利要求4所述的方法,其特征在于,向所述离线账号推送已存储的所述消息内容,包括:
确定所述离线账号对应的所有消息内容,所述所有消息内容中各消息内容对应于不同的消息推送请求;
将所述所有消息内容根据预设排序规则进行排序;
根据排序结果向所述离线账号推送所述所有消息内容。
6.根据权利要求1所述的方法,其特征在于,解析所述消息推送请求,以确定所述消息推送请求对应的消息内容和推送范围,包括:
根据服务器协议对所述消息推送请求进行解析,以确定所述消息推送请求对应的消息内容和推送范围。
7.根据权利要求1所述的方法,其特征在于,获取所述推送范围对应的用户账号,包括:
若检测到所述推送范围内不包含标签,则获取所有的用户账号;
若检测到所述推送范围内包含至少一个标签,则获取所述至少一个标签对应的用户账号。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在检测到消息内容推送操作时,根据所述消息内容推送操作对应的用户账号更新所述消息推送请求对应的推送情况。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在接收到推送报告获取请求时,根据当前的推送情况生成推送报告并反馈所述推送报告。
10.根据权利要求1所述的方法,其特征在于,存储所述消息内容和所述推送范围,包括:
若所述推送范围内不存在标签,则存储所述消息内容;
若所述推送范围内存在至少一个标签,则存储所述消息内容和所述推送范围。
11.一种消息推送系统,其特征在于,包括第一客户端、第二客户端、用户请求处理服务器、用户账号存储服务器、消息存储服务器、消息扩散服务器、消息拉取服务器以及消息推送服务器,其中:
所述第一客户端,用于向所述用户请求处理服务器发送消息推送请求;
所述用户请求处理服务器,用于接收所述消息推送请求;解析所述消息推送请求,以确定所述消息推送请求对应的消息内容和推送范围;从所述用户账号存储服务器中获取所述推送范围对应的用户账号;向所述消息扩散服务器发送所述用户账号、所述消息内容和所述推送范围;
所述消息扩散服务器,用于接收所述用户账号、所述消息内容和所述推送范围;向所述用户账号对应的所述消息推送服务器发送所述消息内容;向所述消息存储服务器发送所述消息内容和所述推送范围,以使得所述消息存储服务器存储所述消息内容和所述推送范围;其中,仅存储一份所述消息内容,不对应存储所述用户账号;
所述消息存储服务器,用于接收所述消息内容和所述推送范围并存储所述消息内容和所述推送范围;
所述消息推送服务器,用于接收所述消息内容;向所述用户账号中在线账号对应的第二客户端推送所述消息内容;
所述消息拉取服务器,用于在检测到所述用户账号中的离线账号上线时,向所述账号对应的第二客户端推送所述消息存储服务器中已存储的所述消息内容;
所述第二客户端,用于接收所述消息内容;其中,所述第二客户端包括所述在线账号对应的第二客户端和所述离线账号对应的第二客户端。
12.根据权利要求11所述的系统,其特征在于,所述消息拉取服务器在检测到所述用户账号中的离线账号上线时,向所述离线账号对应的第二客户端推送所述消息存储服务器中已存储的所述消息内容的方式具体为:
所述消息拉取服务器,用于当检测到由离线状态转换为上线状态的待定用户账号时,获取所述待定用户账号的标签;向所述消息存储服务器发送所述待定用户账号的标签;
所述消息存储服务器,用于接收所述待定用户账号的标签;在根据所述标签检测到所述待定用户账号属于所述消息存储服务器中已存储的所述推送范围时,判定所述待定用户账号为所述用户账号中的离线账号;将所述消息内容返回所述消息拉取服务器;
所述消息拉取服务器,用于向所述离线账号推送所述消息内容。
13.一种消息推送装置,其特征在于,所述装置包括用户请求解析单元、数据存储单元、用户账号获取单元以及消息推送单元,其中:
所述用户请求解析单元,用于当接收到消息推送请求时,解析所述消息推送请求,以确定所述消息推送请求对应的消息内容和推送范围;
所述数据存储单元,用于存储所述消息内容和所述推送范围;其中,仅存储一份所述消息内容,不对应存储所述用户账号;
所述用户账号获取单元,用于获取所述推送范围对应的用户账号;
所述消息推送单元,用于向所述用户账号中的在线账号推送所述消息内容,并在检测到所述用户账号中的离线账号上线时,根据所述推送范围向所述离线账号推送已存储的所述消息内容。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一项所述的方法。
15.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010201017.9A CN111464599B (zh) | 2020-03-20 | 2020-03-20 | 消息推送方法、系统、装置、计算机可读存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010201017.9A CN111464599B (zh) | 2020-03-20 | 2020-03-20 | 消息推送方法、系统、装置、计算机可读存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111464599A CN111464599A (zh) | 2020-07-28 |
CN111464599B true CN111464599B (zh) | 2021-05-07 |
Family
ID=71682929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010201017.9A Active CN111464599B (zh) | 2020-03-20 | 2020-03-20 | 消息推送方法、系统、装置、计算机可读存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111464599B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102685138A (zh) * | 2012-05-21 | 2012-09-19 | 华为技术有限公司 | 离线消息推送方法及装置 |
CN103164450A (zh) * | 2011-12-15 | 2013-06-19 | 腾讯科技(深圳)有限公司 | 一种向目标用户推送信息的方法及装置 |
CN104093123A (zh) * | 2013-06-09 | 2014-10-08 | 腾讯科技(深圳)有限公司 | 应用程序的信息推送方法、装置和系统、移动终端 |
CN105827706A (zh) * | 2016-03-24 | 2016-08-03 | 努比亚技术有限公司 | 消息推送装置及方法 |
CN108768775A (zh) * | 2018-05-30 | 2018-11-06 | 努比亚技术有限公司 | 信息处理方法、电子设备及计算机存储介质 |
CN110417884A (zh) * | 2019-07-23 | 2019-11-05 | 腾讯科技(深圳)有限公司 | 一种消息推送方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9549032B2 (en) * | 2014-12-19 | 2017-01-17 | Ca, Inc. | Mobile content management for offline content access |
CN106202079A (zh) * | 2015-04-30 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 信息获取方法、装置和系统 |
CN105472400B (zh) * | 2015-12-24 | 2019-06-11 | Tcl集团股份有限公司 | 一种消息推送方法及系统 |
CN106790454A (zh) * | 2016-12-07 | 2017-05-31 | 努比亚技术有限公司 | 离线消息推送方法与装置 |
CN110020262A (zh) * | 2018-08-14 | 2019-07-16 | 深圳壹账通智能科技有限公司 | 推送信息发送方法、装置、计算机设备和存储介质 |
-
2020
- 2020-03-20 CN CN202010201017.9A patent/CN111464599B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164450A (zh) * | 2011-12-15 | 2013-06-19 | 腾讯科技(深圳)有限公司 | 一种向目标用户推送信息的方法及装置 |
CN102685138A (zh) * | 2012-05-21 | 2012-09-19 | 华为技术有限公司 | 离线消息推送方法及装置 |
CN104093123A (zh) * | 2013-06-09 | 2014-10-08 | 腾讯科技(深圳)有限公司 | 应用程序的信息推送方法、装置和系统、移动终端 |
CN105827706A (zh) * | 2016-03-24 | 2016-08-03 | 努比亚技术有限公司 | 消息推送装置及方法 |
CN108768775A (zh) * | 2018-05-30 | 2018-11-06 | 努比亚技术有限公司 | 信息处理方法、电子设备及计算机存储介质 |
CN110417884A (zh) * | 2019-07-23 | 2019-11-05 | 腾讯科技(深圳)有限公司 | 一种消息推送方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111464599A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109359194B (zh) | 用于预测信息类别的方法和装置 | |
CN108810047B (zh) | 用于确定信息推送准确率的方法、装置及服务器 | |
US20200322570A1 (en) | Method and apparatus for aligning paragraph and video | |
CN110619078B (zh) | 用于推送信息的方法和装置 | |
CN109766148B (zh) | 用于处理接口方法调用的方法和装置 | |
CN113971243A (zh) | 应用于问卷调查的数据处理方法、系统、设备及存储介质 | |
CN114297278A (zh) | 批量数据快速写入方法、系统和装置 | |
CN114297476A (zh) | 基于用户标签的问卷调查方法、系统、电子设备及存储介质 | |
CN111124858B (zh) | 无埋点插码数据处理方法、系统、终端设备及存储介质 | |
CN112016285B (zh) | 物流信息的处理方法和处理系统 | |
CN110110197B (zh) | 信息获取方法和装置 | |
CN111464599B (zh) | 消息推送方法、系统、装置、计算机可读存储介质及设备 | |
CN111125503B (zh) | 用于生成信息的方法和装置 | |
CN113672671A (zh) | 一种实现数据加工的方法和装置 | |
CN109144864B (zh) | 用于测试窗口的方法及装置 | |
CN107920100B (zh) | 信息推送方法和装置 | |
CN111131354B (zh) | 用于生成信息的方法和装置 | |
CN110780937B (zh) | 任务发布方法、装置、计算机可读存储介质及设备 | |
CN110224921B (zh) | 发送包含招聘信息的邮件的方法、装置、介质、电子设备 | |
CN109727072B (zh) | 用于处理信息的方法和设备 | |
CN113190558A (zh) | 一种数据加工方法和系统 | |
CN111694932A (zh) | 对话方法和装置 | |
CN112131832A (zh) | 在线文档任务状态的提醒方法、装置及电子设备 | |
CN111178696A (zh) | 一种业务处理时长超时预警方法和装置 | |
CN112307324A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40025862 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |