CN114710463B - 一种消息订阅、发布方法、装置、介质及设备 - Google Patents

一种消息订阅、发布方法、装置、介质及设备 Download PDF

Info

Publication number
CN114710463B
CN114710463B CN202011637447.1A CN202011637447A CN114710463B CN 114710463 B CN114710463 B CN 114710463B CN 202011637447 A CN202011637447 A CN 202011637447A CN 114710463 B CN114710463 B CN 114710463B
Authority
CN
China
Prior art keywords
user
message
subscription
state
target
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
Application number
CN202011637447.1A
Other languages
English (en)
Other versions
CN114710463A (zh
Inventor
曾加
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202011637447.1A priority Critical patent/CN114710463B/zh
Publication of CN114710463A publication Critical patent/CN114710463A/zh
Application granted granted Critical
Publication of CN114710463B publication Critical patent/CN114710463B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种消息订阅、发布方法、装置、介质及设备,包括获取第一用户的第一目标操作,第一目标操作包含发起订阅、暂停订阅、恢复订阅或终止订阅;获取第一用户的第一对象和第二用户的第二对象,对象具有状态和邮箱;根据第一目标操作、第一对象和第二对象生成第一目标消息,根据第一目标消息更新第二用户的订阅用户列表或第一对象的状态;根据消息接收模式配置第一对象的邮箱的消息推送模式;根据第一对象的工作状态或邮箱的消息推送模式对第二用户发布的消息进行处理。本发明涉及消息传递模式领域,通过控制对象的工作状态和邮箱的工作模式,提供多种消息订阅方式,以及为发布者提供消息管理功能。

Description

一种消息订阅、发布方法、装置、介质及设备
技术领域
本发明涉及消息订阅发布技术领域,具体涉及一种消息订阅、发布方法、装置、介质及设备。
背景技术
目前,采用消息订阅机制的软件提供给订阅者的操作权限仅为发起订阅和终止订阅。且在用户发起订阅后,一旦被订阅者也即发布者发布了信息,则该信息会被立即推送给所有的订阅用户,订阅者只能被动地接收信息,发布者也无法对已经发布的信息进行管理。
发明内容
为了解决订阅用户无法操作消息的接收模式以及发布用户无法管理消息的问题,本发明提供了一种消息订阅、发布方法、装置、介质及设备。所述技术方案如下:
第一方面,本发明提供了一种消息订阅方法,所述方法包括:
获取第一用户对第二用户的第一目标操作,所述第一目标操作包含发起订阅、暂停订阅、恢复订阅或终止订阅;
获取所述第一用户的第一对象和所述第二用户的第二对象,所述第一对象和所述第二对象均包含状态和邮箱;
根据所述第一目标操作、所述第一对象和所述第二对象生成第一目标消息,根据所述第一目标消息更新所述第二用户的订阅用户列表或更新所述第一对象的状态;
根据所述第一用户的消息接收模式配置所述第一对象的邮箱的消息推送模式;
根据所述第一对象的状态或所述第一对象的邮箱的消息推送模式对所述第二用户发布的消息进行处理。
第二方面,本发明提供了一种消息发布方法,所述方法包括:
获取第二用户的第二目标操作,所述第二目标操作包含推送消息、修改消息或撤回消息;
获取所述第二用户的订阅用户列表,根据所述订阅用户列表确定至少一个第一用户的第一对象;
根据所述第二目标操作和所述至少一个第一用户的第一对象生成至少一个第二目标消息;
将所述至少一个第二目标消息对应发送至所述至少一个第一用户的第一对象以使所述至少一个第一用户的第一对象对消息进行处理。
第三方面,本发明提供了一种消息订阅装置,所述装置包括:
第一获取模块,用于获取第一用户对第二用户的第一目标操作,所述第一目标操作包含发起订阅、暂停订阅、恢复订阅或终止订阅;
第二获取模块,用于获取所述第一用户的第一对象和所述第二用户的第二对象,所述第一对象和所述第二对象均包含状态和邮箱;
第一订阅配置模块,用于根据所述第一目标操作、所述第一对象和所述第二对象生成第一目标消息,根据所述第一目标消息更新所述第二用户的订阅用户列表或更新所述第一对象的状态;
第二订阅配置模块,用于根据所述第一用户的消息接收模式配置所述第一对象的邮箱的消息推送模式;
消息处理模块,用于根据所述第一对象的状态或所述第一对象的邮箱的消息推送模式对所述第二用户发布的消息进行处理。
第四方面,本发明提供了一种消息发布装置,所述装置包括:
第三获取模块,用于获取第二用户的第二目标操作,所述第二目标操作包含推送消息、修改消息或撤回消息;
第四获取模块,用于获取所述第二用户的订阅用户列表,根据所述订阅用户列表确定至少一个第一用户的第一对象;
第二目标消息生成模块,用于根据所述第二目标操作和所述至少一个第一用户的第一对象生成至少一个第二目标消息;
消息发布模块,用于将所述至少一个第二目标消息对应发送至所述至少一个第一用户的第一对象以使所述至少一个第一用户的第一对象对消息进行处理。
第五方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如第一方面所述的一种消息订阅方法或第二方面所述的一种消息发布方法。
第六方面,本发明提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由所述处理器加载并执行以实现如第一方面所述的一种消息订阅方法或第二方面所述的一种消息发布方法。
本发明提供的一种消息订阅、发布方法、装置、设备及存储介质,具有如下技术效果:
(1)本发明提供的方案对于订阅方而言,可以将用户的消息订阅状态变得更为多样可控,消息推送的方式也能由用户控制;
(2)本发明提供的方案对于发布方而言,除了发布消息,还可以将发布的消息进行撤回或是修改,提供了更多的消息管理操作。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本发明实施例提供的一种消息订阅、发布方法的实施环境示意图;
图2是本发明实施例提供的一种消息订阅方法的流程示意图;
图3是本发明实施例提供的一种消息发布方法的流程示意图;
图4是本发明实施例提供一种消息订阅发布系统中用户与邮箱的对应关系示意图;
图5是本发明实施例提供的一种消息订阅方法中第一用户发起订阅的流程示意图;
图6(1)和图6(2)是本发明实施例提供的一种消息发布方法中第二用户进行消息管理的示意图;
图7是本发明实施例提供的一种消息发布方法中第二用户进行用户管理操作的流程示意图;
图8是本发明实施例提供的一种消息订阅装置的结构示意图;
图9是本发明实施例提供的一种消息发布装置的结构示意图;
图10是本发明实施例提供的用于实现一种消息订阅方法或一种消息发布方法的设备的硬件结构示意图。
具体实施方式
为了解决订阅用户无法操作消息的接收模式以及发布用户无法管理消息的问题,本发明实施例提供了一种消息订阅、发布方法、装置、介质及设备。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,其为本申请实施例提供的一种消息订阅、发布方法的实施环境示意图,如图1所示,该实施环境可以至少包括客户端01、服务器02和客户端03。
具体的,所述客户端01可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、智能可穿戴设备、监控设备及语音交互设备等类型的设备,也可以包括运行于设备中的软体,例如一些服务商提供给用户的网页页面,也可以为该些服务商提供给用户的应用。具体的,所述客户端01可以用于订阅方执行发起订阅、暂停订阅、回复订阅或终止订阅的操作,以及显示经由服务器02发送的发布方推送的消息。所述客户端03可以用于发布方执行推送消息、撤回消息、查看订阅用户或冻结订阅用户的操作。
具体的,所述服务器02可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。所述服务器02可以包括有网络通信单元、处理器和存储器等等。具体的,所述服务器02可以运行基于消息传递模型建立的消息订阅发布系统并传递消息。
以下介绍本发明提供的一种消息订阅、发布方法。图2是本发明实施例提供的一种消息订阅方法的流程图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。请参照图2,以消息订阅发布系统作为执行主体,本说明书实施例提供的一种消息订阅方法包括如下步骤:
S201:获取第一用户对第二用户的第一目标操作,所述第一目标操作包含发起订阅、暂停订阅、恢复订阅或终止订阅。
可以理解的是,目前使用的用户消息订阅类的软件应用中,用户可以发起对发布者的订阅或终止对该发布者的订阅。示例性,以微信公众号为一具体的应用,假如用户A订阅了某一个公众号G,那么当公众号G发布消息的时候,用户A就会收到相关的推送,点开可以查看推送的消息内容,只要是订阅公众号的用户均会立即收到该消息。作为用户A,不需要时刻打开手机查看公众号G是否有推送消息,因为在公众号发布消息的那一刻,用户A就会收到相关推送。如果用户A不想继续关注公众号G,则可以取消关注,取关以后,公众号G再发布消息,A就无法收到了。
在本说明书实施例中,为了使用户可以控制消息的订阅状态和消息的推送模式,本发明提供的一种消息订阅方法还能够实现订阅者对发布者暂停订阅或恢复订阅的操作,此外,还可以设置消息的推送时间段、推送提醒方式、推送内容筛选等,使得用户的订阅更为主动可控。示例性地,本发明提供的一种消息订阅方法基于Actor模型建立消息传递的中转介质,以实现上述功能。
在本说明书的一个实施例中,所述第一用户为订阅者,所述第二用户为被订阅者也即发布者。示例性地,在应用软件或者应用程序的图形用户界面中,响应于第一用户的触控、点击或上传,确定所述第一目标操作,所述第一目标操作可以包含操作属性、操作信息内容等,示例性地,所述操作属性可以包括但不限于发起订阅、暂停订阅、恢复订阅和终止订阅,所述操作信息内容可以包括但不限于第一用户的身份标识和第二用户的身份标识。
S203:获取所述第一用户的第一对象和所述第二用户的第二对象,所述第一对象和所述第二对象均包含状态和邮箱。
示例性地,本发明提供的一种消息订阅方法可以基于Actor模型建立消息传递的中转介质,Actor模型是在1973年提出的一个分布式并发编程模式,它定义了一系列系统组件应该如何动作和交互的通用规则,在Erlang语言中得到广泛支持和应用。在计算机科学领域,Actor是一个并行计算的数学模型,最初是为了由大量独立的微处理器组成的高并行计算机所开发的。在Actor模型中,ActorSystem作为顶级Actor可以创建和停止Actors,甚至可关闭整个Actor环境,能发现和操作所有Actors;一个Actor指的是一个最基本的计算单元,它能接收一个消息并且基于其执行计算。一个Actor由状态(State)、行为(Behavior)和邮箱(MailBox)三部分组成;其中状态(State)指的是Actor对象的变量信息,状态由Actor自我控制或者由消息发送方控制状态,避免了并发环境下的锁和内存原子性等问题,行为(Behavior)指的是Actor中的计算逻辑,通过Actor接收到消息来改变Actor的状态,邮箱(MailBox)是Actor和Actor之间的通信桥梁,邮箱内部通过FIFO(First Input FirstOutput,指先进先出)消息队列来存储发送方Actor消息,接受方Actor从邮箱消息队列中获取消息。Actor基于Akka(Akka是一个开发库和运行环境,可以用于构建高并发、分布式、可容错、事件驱动的基于JVM(Java Virtual Machine,Java虚拟机)的应用)协议通过消息传递的方式与外界通信,且消息传递是异步的。每个Actor都有一个邮箱,邮箱接收并缓存其他Actor发过来的消息,通过邮箱队列mail queue来处理消息。Actor一次只能同步处理一个消息。
在本说明书实施例中,所述第一对象为与所述第一用户绑定的Actor对象,所述第二对象为与所述第二用户绑定的Actor对象。状态表征对象的工作模式,邮箱可以认为是对象的消息队列,此外,对象还具有消息接发功能以和其他对象进行消息传递通信。在本说明书实施例中,基于相同的发明思路,可以采用其他消息传递模型或者消息中间件技术实现本发明提供的一种消息订阅方法,并不限定为Actor模型。
在一种可行的实施方式中,所述第一目标操作为发起订阅时,所述步骤S203可以包括:
S2031:创建所述第一用户的第一对象,初始化所述第一对象的状态、邮箱和消息接发功能。
具体地,通过ActorSystem创建一个Actor对象作为所述第一用户的第一对象以实现与第一用户的绑定,初始化所述第一对象的状态为工作的状态,初始化邮箱的消息接收和发送功能以实现与其他Actor对象的通信。可以理解的是,所述ActorSystem可以在消息订阅发布系统初始化时创建,或者在消息订阅发布系统中的第一个Actor对象创建时一并创建,ActorSystem作为顶级Actor可以创建、发现和操作其他Actors。
在另一种可行的实施方式中,也可以将消息订阅发布系统中未与用户绑定的对象作为第一用户的第一对象,实现第一用户与第一对象的绑定。
S2032:根据所述第一目标操作获取所述第二用户的第二对象。
具体地,根据发起订阅操作中的操作信息内容确定第二用户的身份标识,根据所述第二用户的身份标识获取所述第二用户的第二对象。由第二用户的身份标识得到第二用户的第二对象,可以通过查询消息订阅发布系统的用户邮箱列表,所述用户邮箱列表包括但不限于用户的身份标识与邮箱的对应关系,因邮箱是从属于对象,则所述用户邮箱列表中包含的用户身份标识与邮箱的对应关系也可以看作是用户身份标识与对象的对应关系,以下不再赘述。可以理解的是,通过创建对象或者分配对象实现用户与对象的对应关系时,消息订阅发布系统会根据用户的身份标识和对象的邮箱更新用户邮箱列表。
在一种可行的实施方式中,所述第一目标操作为暂停订阅、恢复订阅或终止订阅时,所述步骤S203可以包括:
根据所述第一目标操作获取所述第一用户的身份标识和所述第二用户的身份标识;
根据所述第一用户的身份标识和所述第二用户的身份标识确定所述第一用户的第一对象和所述第二用户的第二对象。
示例性地,将消息订阅发布系统视为本说明书实施例提供的一种消息订阅方法的执行主体,如图4所示,在所述消息订阅发布系统中,设有用户邮箱列表,所述用户邮箱列表包括但不限于所有用户的身份标识与邮箱的对应关系,如用户A和邮箱A,用户B和邮箱B,消息发布者也即第一用户也对应有发布者邮箱,但在图4中未示出发布者邮箱,则可以根据所述第一用户的身份标识和所述第二用户的身份标识在所述用户邮箱列表中确定所述第一用户的第一对象的邮箱和所述第二用户的第二对象的邮箱。
S205:根据所述第一目标操作、所述第一对象和所述第二对象生成第一目标消息,根据所述第一目标消息更新所述第二用户的订阅用户列表或更新所述第一对象的状态。
在本说明书的实施例中,消息订阅发布系统采用消息传递完成对象与对象之间的通信,以及根据传递的消息更新订阅用户列表或更新对象的状态,从而可以实现第一用户的多种订阅操作,并实现第一用户对订阅状态的控制。当第一用户执行发起订阅时,需要建立第一用户和第二用户之间的订阅关系,当第一用户执行终止订阅时,需要解除第一用户和第二用户之间的订阅关系,当第一用户执行暂停订阅或恢复订阅时,需要改变第一用户的第一对象的工作状态。
需要说明的是,本说明书实施例对消息在消息订阅发布系统中具体的传递流程以及消息订阅发布系统中用户邮箱列表和订阅用户列表的操作权限归属不作具体限定,可以根据应用模式、业务逻辑或开发需求等进行设计。在一种可行的实施方式中,第一用户的第一对象和第二用户的第二对象都可以根据消息更新用户邮箱列表或订阅用户列表,或者由消息订阅发布系统中特定的对象负责对订阅用户列表或用户邮箱列表的更新管理,对象之间可以通过传递消息直接通信。在另一种可行的实施方式中,消息订阅发布系统设有消息接收分发模块(Message Dispatcher),所述消息接收分发模块在消息传递过程中可以承担消息转发的功能,具体地可以接收某一对象发送的消息并根据用户邮箱列表将消息转发至另一对象的邮箱中。所述消息接收分发模块还可以管理消息订阅发布系统中的用户邮箱列表或订阅用户列表,具体地可以根据对象发送的消息更新用户邮箱列表或订阅用户列表,并发送消息通知对应的对象。可以理解的是,消息接收分发模块的设置可以提高系统的消息传递效率,消息接收分发模块可以是为消息订阅发布系统单独服务的功能模块,也可以由同时服务多个系统的消息接收分发中心来充当。可以理解的是,在不同的架构下,第一目标消息中的消息内容和类型可以相应的不同。
在一种可行的实施方式中,第一对象和第二对象之间通过传递消息直接通信且第二用户的订阅用户列表由第二用户的第二对象进行管理时,如图5所示,所述第一目标操作为发起订阅时,所述步骤S205可以包括以下步骤:
S401:根据所述第一目标操作、所述第一对象和所述第二对象生成第一目标消息。
可以理解的是,所述第一目标消息可以包括但不限于第一用户的身份标识、第二用户的身份标识、第一对象的邮箱、第二对象的邮箱以及第一目标操作的操作属性。
S402:将所述第一目标消息发送至所述第二对象以将所述第一用户添加至所述第二用户的订阅用户列表中。
具体地,第一对象将第一目标消息发送给第二对象,第二对象根据第一目标消息进行处理,将第一用户的身份标识添加至第二用户的订阅用户列表中。进一步地,还可以将第一对象的邮箱添加在第二用户的订阅用户列表中,在第二用户发布消息的时候可以直接根据根据订阅用户列表中记录的邮箱发送消息到第一用户的第一对象。
S403:将所述第一对象的状态改为停止工作的状态。
可以理解的是,如Actor对象的状态可以由Actor自我控制,则在第一对象将所述第一目标消息发送至所述第二对象后,可将自身的状态改为停止工作的状态。此时第一用户只是发起了订阅,还没有正式成为第二用户的订阅用户,避免在此时接收到第二用户发布的消息需要将第一用户的第一对象的状态改为停止工作的状态,直至收到改变状态的消息。
S404:生成订阅成功消息,将所述订阅成功消息发送至所述第一对象。
可以理解的是,当第二对象将第一用户的身份标识添加至第二用户的订阅用户列表中后,第一用户正式地成为了第二用户的订阅用户,但此时第一用户的第一对象还处于停止工作的状态,因此第二对象可以将订阅成功消息发送至第一对象,所述订阅成功消息中包含改变第一用户的第一对象的状态的信息。
S405:根据所述订阅成功消息将所述第一对象的状态改为正常工作的状态。
可以理解的是,所述订阅成功消息可以包含改变第一对象的状态的消息。示例性地,Actor对象的状态还可以由消息发送方控制。当第一对象接收到订阅成功消息,并根据订阅成功消息将自身状态改为正常工作的状态后,第一对象的邮箱可以正常地接收、推送发布者发布的消息。
在另一种可行的实施方式中,当消息订阅发布系统中设有消息接收分发模块,并由消息接收分发模块根据用户邮箱列表进行消息的转发,且由消息接收分发模块管理订阅用户列表时,所述第一目标操作为发起订阅时,所述步骤S205可以包括以下步骤:
S406:根据所述第一目标操作生成第一目标消息中的第一关键消息。
具体地,第一对象根据所述第一目标操作生成第一目标消息中的第一关键消息,将所述第一关键消息发送至消息接收分发模块。所述第一关键消息包括但不限于第一用户的身份标识、第二用户的身份标识和第一目标操作的操作属性。在第一对象将第一关键消息发送后,可以主动将自身状态改为停止工作的状态。
S407:根据所述第一关键消息更新所述第二用户的订阅用户列表。
可以理解的是,当消息接收分发模块接收到第一关键消息后将第一用户的身份标识添加至第二用户的订阅用户列表中。由消息接收分发模块管理订阅用户列表时,消息接收分发模块管理的可以是一个总表,总表记录了所有用户之间的订阅关系,消息接收分发模块管理的也可以是多个子表,每个子表对应一个用户的订阅用户列表,可以通过第二用户的身份标识确定第二用户的订阅用户列表。如第二用户的订阅用户列表中包含有订阅了第二用户的所有第一用户的信息,第一用户的订阅用户列表中包含有第一用户订阅的所有第二用户的信息。此处以消息接收分发模块管理多个子表以及更新第二用户的订阅用户列表为例,基于相同思路,可以更新总表或者更新第一用户的订阅用户列表。
S408:根据用户邮箱列表和所述第一关键消息确定第一对象和第二对象。
具体地,所述消息接收分发模块根据用户邮箱列表和所述第一关键消息确定第一对象和第二对象,所述用户邮箱列表包括但不限于所有用户的身份标识与邮箱的对应关系,消息接收分发模块可以根据第一关键消息中包含的第一用户的身份标识和第二用户的身份标识在用户邮箱列表中查找并确定第一对象的邮箱和第二对象的邮箱。
S409:根据所述第二对象生成用户订阅通知消息作为所述第一目标消息中的第二关键消息。
可以理解的是,在消息接收分发模块完成第二用户的订阅用户列表的更新后,可以发送第二关键消息至第二对象的邮箱,第二对象的邮箱可以将该消息推送给第二用户以告知第二用户有第一用户对其发起了订阅。在发起订阅的第一用户较多时,第二对象的邮箱可以设置为接收消息但是不进行推送。
S410:根据所述第一对象生成订阅成功消息作为所述第一目标消息中的第三关键消息,根据所述第三关键消息更新所述第一对象的状态。
可以理解的是,在消息接收分发模块完成第二用户的订阅用户列表的更新后,可以发送消息第三关键消息至第一对象的邮箱,以使第一对象的状态改为正常工作的状态。
可以理解的是,在本说明书实施例中步骤S401-S405提供的实施方式中将消息订阅发布系统设计为对象与对象直接传递消息且第二用户的订阅用户列表由第二用户的第二对象管理的架构,本说明书实施例中步骤S406-410提供的实施方式中将消息订阅发布系统设计为消息订阅发布系统中的消息接收分发模块作为消息传递的中转节点根据用户邮箱列表完成消息的传递并由消息接收分发模块管理订阅用户列表的架构,前者是一种相对分布的架构,后者是一种相对集中的架构。在执行本说明书实施例提供的一种消息订阅方法时,消息订阅发布系统的架构不局限于上述两种,可以根据应用模式、业务逻辑或开发需求等进行具体地设计,示例性的,结合上述两种架构还可以设计为由消息接收分发模块作为消息传递的中转节点以完成消息的传递,但订阅用户列表由用户的对象进行管理,则在这种架构下,本说明书实施例提供的步骤S205可以简单描述为:第一对象根据第一目标操作生成第一目标消息中的第一关键消息,并将所述第一关键消息发送至消息接收分发模块;第一关键消息发送后,第一对象将自身的状态改为停止工作的状态;消息接收分发模块根据第一关键消息中的第二用户的身份标识在用户邮箱列表中查询得到第二用户的第二对象,并将第一关键消息转发至第二用户的第二对象;第二对象根据第一关键消息将第一用户的身份标识添加至第二用户的订阅用户列表中并更新订阅用户列表,在完成更新后,第二对象生成用户订阅通知消息作为第一目标消息中的第二关键消息,以使第二对象的邮箱进行推送;第二对象生成订阅成功消息作为第一目标消息中的第三关键消息,第三关键消息经由消息接收分发模块被转发至第一对象以使第一对象将自身的状态改为正常工作的状态。
当第一目标操作为其他类型的订阅操作或第一目标操作为发送或撤回站内信等通信操作时,在不同的架构下,消息订阅发布系统内部消息传递的过程或订阅用户列表的管理权限也会有所不同,基于上述的示例和相同的构思可以类比推理得到。
在一种可行的实施方式中,具体地,所述第一目标操作为暂停订阅时,所述步骤S205可以包括以下步骤:
S501:根据所述第一目标消息将所述第一对象的状态改为暂停工作的状态。
可以理解的是,第一用户虽然对第二用户进行了消息订阅,但在一些场景下或在一定时间范围内,第一用户不想要接收第二用户发布推送的消息,因此,本说明书实施例提供的一种消息订阅方法通过改变第一用户的第一对象的状态实现第一用户在一段时间内的暂停订阅。
S503:配置所述第一对象的邮箱消息接发功能。
具体地,当第一用户实施对第二用户的暂停订阅的操作时,将第一用户的第一对象的状态改为暂停工作的状态,并配置邮箱消息接发功能,使其邮箱仍可以接收第二用户发布的消息,也即第二用户发布的消息的仍能投递至第一用户的第一对象的邮箱中,但是邮箱不再下发通知消息给第一用户。
在一种可行的实施方式中,具体地,所述第一目标操作为恢复订阅时,所述步骤S205可以包括以下步骤:
S601:根据所述第一目标消息将所述第一用户的第一对象的状态改为正常工作的状态。
可以理解的是,当第一用户对第二用户暂停订阅后,相应地可以执行恢复订阅的操作。本说明书实施例提供的一种消息订阅方法通过改变对象的状态可以使第一用户可以改变自己的订阅状态,以满足第一用户的不同订阅状态需求。
S603:配置所述第一对象的邮箱的消息接发功能。
具体地,当第一用户实施对第二用户的恢复订阅的操作时,当第一用户的第一对象处于正常工作的状态,并配置其邮箱的消息接发功能后,其邮箱除可以接收第二用户的第二对象传递的消息,还会将存储在邮箱消息队列中的消息推送,包括在暂停订阅期间接收到但没有进行处理或推送的消息。
可以理解的是,在暂停订阅和恢复订阅过程中邮箱的消息接发功能的配置可以根据实际的业务逻辑和应用模式设计,本申请对此不作唯一限定。
在一种可行的实施方式中,具体地,所述第一目标操作为终止订阅时,所述步骤S205可以包括以下步骤:
S701:根据所述第一目标消息将所述第一用户从所述第二用户的订阅用户列表中移除。
示例性地,当第二对象可以直接管理第二用户的订阅用户列表时,将第一目标消息传递至第二对象,第二对象根据接收到的第一目标消息将第一用户的身份标识从第二用户的订阅用户列表中移除,完成对第二用户的订阅用户列表的更新。
示例性地,当消息订阅发布系统中的消息接收分发模块作为消息传递的中转节点根据用户邮箱列表完成消息的传递并由消息接收分发模块管理订阅用户列表时,将所述第一目标消息发送至消息接收分发模块,由消息接收分发模块将第一用户从第二用户的订阅用户列表中移除。
S703:根据所述第一目标消息解除所述第一用户与所述第一对象的绑定关系。
在本说明书实施例中,终止订阅既是解除第一用户和第二用户之间的订阅关系,也是解除第一用户与第一对象之间的绑定关系,通过传递消息使第一用户的第一对象的邮箱自我停止邮箱服务,解除第一用户与第一对象及其邮箱的绑定。进一步地,通过传递消息注销第一对象及其邮箱,并返回消息至消息订阅发布系统,以更新消息订阅发布系统中的用户邮箱列表。
S207:根据所述第一用户的消息接收模式配置所述第一对象的邮箱的消息推送模式。
在本说明书实施例所提供的一种消息订阅方法中,第一用户除了可以对订阅状态进行控制,还可以自主的改变消息推送模式,以满足第一用户不同的应用需求。所述消息推送模式是第一用户的第一对象的邮箱在接收到第二用户发布的消息后将消息推送通知到第一用户的应用端或客户端的形式。具体地,所述消息推送模式包括但不限于消息推送的时间、消息推送的数量、消息推送的关键内容,如邮箱在接收到发布的消息后可以立即推送或者延迟一段时间推送,可以在某个固定的时间段内推送消息至第一用户,可以等接收到一定数量的消息后一齐推送,还可以对消息内容检索关键词,对包含特定关键词的消息进行推送通知,对不包含特定关键词的消息不通知。
S209:根据所述第一对象的状态或所述第一对象的邮箱的消息推送模式对所述第二用户发布的消息进行处理。
示例性地,所述第一目标操作为发起订阅时,当根据订阅成功消息将所述第一用户的第一对象的状态改为正常工作的状态后,第一对象的邮箱可以正常地接收第二用户发布的消息,并根据邮箱的消息推送模式将接收到的消息推送至第一用户的客户端或者应用端;所述第一目标操作为暂停订阅时,根据所述第一目标消息将所述第一对象的状态改为暂停工作的状态后,其邮箱的消息接发功能体现为仍可以接收第二用户发布的消息,也即第二用户发布的消息的仍能投递至第一用户的第一对象的邮箱中,但是邮箱不再将消息推送给第一用户;所述第一目标操作为恢复订阅时,根据所述第一目标消息将所述第一对象的状态改为正常工作的状态并恢复邮箱的消息接发功能后,邮箱将存储在消息队列中的消息根据消息推送模式发送至第一用户的客户端或应用端,包括在暂停订阅期间接收到但没有进行处理或推送的第二用户发布的消息;所述第一目标操作为终止订阅时,根据所述第一目标消息将所述第一用户与所述第一对象解除了绑定关系,可以将所述第一对象的状态视为空缺,若邮箱中存储有未推送的消息,可以根据邮箱的消息推送模式对未推送的消息进行删除。
可以理解的是,本说明书实施例提供的方法应用于订阅类应用场景中,对于订阅方而言,订阅方的订阅状态和消息推送方式均能个性化设置,满足用户更多样化的应用需求。
图3是本发明实施例提供的一种消息发布方法的流程图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。请参照图3,以消息订阅发布系统作为执行主体,本说明书实施例提供的一种图消息发布方法包括如下步骤:
S301:获取第二用户的第二目标操作,所述第二目标操作包含推送消息、修改消息或撤回消息。
可以理解的是,本说明书实施例提供的一种消息发布方法与一种消息订阅方法基于同样的发明思路,一种消息订阅方法适用于订阅者,而一种消息发布方法适用于发布者,两种方法组成构成消息订阅发布系统中的处理过程,其中第一用户(订阅者)和第二用户(发布者)在消息订阅发布系统中均具有对象。
可以理解的是,目前使用的用户消息订阅发布类的软件应用中,发布者无法管理已经发布的消息和订阅的用户。在本说明书实施例中,为了使发布者能够管理发布的消息,甚至可以管理订阅的用户,本发明提供的一种消息发布方法可以基于消息传递模型或者消息中间件技术建立消息传递的中转介质,以实现上述功能。
在本说明书的实施例中,第一用户为订阅用户,第二用户为被订阅用户也即发布用户。示例性地,在应用软件或应用程序的图形用户界面中,响应于第二用户的触控、点击或上传,确定第二目标操作,所述第二目标操作可以包含操作属性、操作信息内容等,示例性地,所述操作属性可以包括但不限于推送消息、修改消息或撤回消息,所述操作信息内容包括但不限于第一用户的身份标识和第二用户的身份标识。
S303:获取所述第二用户的订阅用户列表,根据所述订阅用户列表确定至少一个第一用户的第一对象。
在本说明书实施例中,示例性地,所述消息订阅发布系统可以基于Actor模型建立,其中一个Actor对象由状态(State)、行为(Behavior)和邮箱(MailBox)三部分组成,关于三部分的含义和作用可以如一种消息订阅方法的实施例中所述,此处不再赘述。在本说明书提供的一种消息发布方法的实施例中,第二用户作为发布者也对应一个Actor对象,相应地具有一个关于Actor对象状态的变量信息、一个邮箱和消息的接发功能。具体地,所述第二用户的订阅用户列表可以由消息订阅发布系统中的消息接收分发模块管理或者由所述第二用户的第二对象进行管理。关于消息订阅发布系统内部通信架构和管理权限可以参照本说明书实施例提供的一种消息订阅方法中的对应部分内容,此处不再详细描述。
在一种可行的实施方式中,根据所述订阅用户列表确定至少一个第一用户的第一对象还可以包括:
根据所述订阅用户列表中订阅用户的订阅状态获取至少一类第一用户集。
具体地,由一种消息订阅方法的实施例中可知,第一用户的订阅状态有多种,第一用户的消息推送模式也有多种,相应地,在获取消息的发布对象时,可以根据第一用户的订阅状态和消息推送模式进行筛选。
在一种可行的实施方式中,消息订阅发布系统中的订阅用户列表可以包括但不限于订阅用户的身份标识,消息订阅发布系统中的用户邮箱列表包括但不限于用户身份标识与邮箱的对应关系,因邮箱是从属于对象,则所述用户邮箱列表中包含的用户身份标识与邮箱的对应关系也可以看作是用户身份标识与对象的对应关系,以下不再赘述。具体地,可以从所述第二用户的订阅用户列表中获取至少一个第一用户的身份标识,根据所述至少一个第一用户的身份标识在用户邮箱列表中确定所述至少第一用户的第一对象的邮箱。
S305:根据所述第二目标操作和所述至少一个第一用户的第一对象生成至少一个第二目标消息。
在本说明书的实施例中,消息订阅发布系统采用消息传递完成对象与对象之间的通信,从而实现第二用户的多种消息管理操作。需要说明的是,本说明书实施例对消息在消息订阅发布系统中具体的传递流程以及消息订阅发布系统中用户邮箱列表和订阅用户列表的操作权限归属不作具体限定,可以根据应用模式、业务逻辑或开发需求等进行设计。在一种可行的实施方式中,第一用户的第一对象和第二用户的第二对象都可以根据消息更新用户邮箱列表或订阅用户列表,或者由消息订阅发布系统中特定的对象负责对订阅用户列表或用户邮箱列表的更新管理,对象之间可以通过传递消息直接通信。在另一种可行的实施方式中,消息订阅发布系统设有消息接收分发模块(Message Dispatcher),所述消息接收分发模块在消息传递过程中可以承担消息转发的功能,具体地可以接收某一对象发送的消息并根据用户邮箱列表将消息转发至另一对象的邮箱中。所述消息接收分发模块还可以管理消息订阅发布系统中的用户邮箱列表或订阅用户列表,具体地可以根据对象发送的消息更新用户邮箱列表或订阅用户列表,并发送消息通知对应的对象。可以理解的是,消息接收分发模块的设置可以提高系统的消息传递效率,消息接收分发模块可以是为消息订阅发布系统单独服务的功能模块,也可以由同时服务多个系统的消息接收分发中心来充当。可以理解的是,在不同的架构下,第一目标消息中的消息内容和类型可以相应的不同。
S307:将所述至少一个第二目标消息对应发送至所述至少一个第一用户的第一对象以使所述至少一个第一用户的第一对象对消息进行处理。
具体地,根据所述至少一个第一用户的第一对象的邮箱将所述至少一个第二目标消息对应发送至各邮箱中,以使各邮箱根据第二目标消息中的消息内容进行消息的读取推送,或者根据第二目标消息撤回之前发布的消息,还可以根据所述第二目标消息修改之前传递的消息内容,给第二用户提供了更多的消息管理功能。
示例性地,当消息订阅发布系统中设有消息接收分发模块,并由消息接收分发模块根据用户邮箱列表进行消息的转发,且由消息接收分发模块管理订阅用户列表时,所述第二目标操作为推送消息时,本说明书实施例提供的步骤S305和步骤S307可以包括:
如图6(1)所示,第二对象根据第二目标操作生成第四关键消息,第四关键消息包括但不限于操作属性、推送信息内容和第二用户的身份标识;第二对象的邮箱(也即发布者邮箱)将第四关键消息发送至消息接收分发模块,消息接收分发模块根据第二用户的身份标识查询第二用户的的订阅用户列表获取至少一个第一用户的身份标识,其中第一用户是第二用户的订阅用户;消息接收分发模块根据第一用户的身份标识和用户邮箱列表确定第一用户的第一对象的邮箱,同时消息接收分发模块根据第四关键消息中的推送信息内容创建至少一个第二目标消息;消息接收分发模块将至少一个目标消息对应发送至至少一个第一用户的第一对象的邮箱(如用户A邮箱和用户B邮箱)中以使所述至少一个第一用户的第一对象对消息进行处理。
示例性地,当消息订阅发布系统中设有消息接收分发模块,并由消息接收分发模块根据用户邮箱列表进行消息的转发,且由第二对象管理第二用户的订阅用户列表时,所述第二目标操作为推送消息时,本说明书实施例提供的步骤S305和步骤S307可以包括:
如图6(2)所示,第二对象从第二用户的订阅用户列表中确定至少一个第一用户的身份标识;第二对象根据第二目标操作和至少一个第一用户的身份标识生成至少一个第二目标消息;第二对象的邮箱(也即发布者邮箱)将所述至少一个第二目标消息发送至消息接收分发模块;消息接收分发模块根据用户邮箱列表(图6(2)中未示出)和各第二目标消息中的第一用户的身份标识,将至少一个第二目标消息以广播的形式转发至至少一个第一用户的第一对象的邮箱中,以使各第一对象对消息进行处理。
在一种可行的实施方式中,具体地,如图7所示,所述一种消息发布方法还包括:
S801:根据所述第二用户的第三目标操作生成第三目标消息,所述第三目标操作为查看订阅用户或冻结订阅用户。
在本说明书实施例中,第二用户除了可以对消息进行管理,还可以对订阅用户进行管理。第一用户可以对订阅状态和消息推送模式进行自主控制,因此可以查看状态信息和模式信息分析用户行为数据,以便第二用户有针对性的进行消息的发布,从而获得更好的消息推送、传播效果。
S802:根据所述第三目标消息获取所述至少一个第一用户的订阅状态信息。
示例性地,在订阅用户列表中确定至少一个第一用户的身份标识,根据身份标识在用户邮箱列表中进行查询,若用户邮箱列表中仅记录用户的身份标识与邮箱的对应关系,则可以将第三目标消息发送至第一用户的第一对象中,并由第一对象返回第一用户的订阅状态信息;若用户邮箱列表中还记录了邮箱的状态和邮箱中消息的推送模式,则直接从用户邮箱列表中获取信息生成订阅状态信息。
S803:根据所述订阅状态信息进行分析,得到订阅用户分析结果。
示例性地,根据订阅状态信息可以统计各订阅状态的第一用户人数,可以分析第一用户接收消息推送的集中时间范围。
S804:在所述第三目标操作为查看订阅用户时,将所述订阅用户分析结果发送至所述第二用户以使所述第二用户调整发布策略。
示例性地,所述发布策略包括但不限限于根据用户选择的推送时间调整发布时间,或根据用户选择的推送关键词调整发布信息的内容。
S805:在所述第三目标操作为冻结订阅用户时,根据所述订阅用户分析结果确定所述订阅用户列表中的目标第一用户,将所述目标第一用户的第一对象的状态改为停止工作的状态。
可以理解的是,所述目标第一用户可以为“机器人”用户。在本说明书实施例中,除了可以查看用户的订阅状态分析用户的行为之外,还可以屏蔽部分“机器人”用户的恶意请求。“机器人”用户会通过频繁订阅注册进行攻击,影响订阅消息和发布消息的正常传递,本说明书实施例提供的一种消息发布方法通过检查用户的订阅状态确定“机器人”用户,进而对其进行屏蔽。具体地,根据所述目标第一用户生成第四目标消息,根据所述第四目标消息将所述目标第一用户的第一对象的状态改为停止工作的状态。在消息订阅发布系统的一类通信架构下,所述第四目标消息可以发送至消息订阅发布系统的消息接收分发模块,消息接收分发模块冻结第一对象的状态或邮箱的工作状态,使其邮箱不再接收新的消息或者不下发消息至订阅用户的应用端或客户端。
可以理解的是,本说明书实施例提供的方法应用用于订阅类应用场景中,对于发布方而言,除了发布消息,还可以将发布的消息进行撤回或是修改,提供了更多的消息管理操作,进一步地,还可以对订阅用户进行管理。
本发明实施例还提供了一种消息订阅装置,如图8所示,所述装置可以包括:
第一获取模块810,用于获取第一用户对第二用户的第一目标操作,所述第一目标操作包含发起订阅、暂停订阅、恢复订阅或终止订阅;
第二获取模块820,用于获取所述第一用户的第一对象和所述第二用户的第二对象,所述第一对象和所述第二对象均包含状态和邮箱;
第一订阅配置模块830,用于根据所述第一目标操作、所述第一对象和所述第二对象生成第一目标消息,根据所述第一目标消息更新所述第二用户的订阅用户列表或更新所述第一对象的状态;
第二订阅配置模块840,用于根据所述第一用户的消息接收模式配置所述第一对象的邮箱的消息推送模式;
消息处理模块850,用于根据所述第一对象的状态或所述第一对象的邮箱的消息推送模式对所述第二用户发布的消息进行处理。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例还提供了一种消息发布装置,如图9所示,所述装置可以包括:
第三获取模块910,用于获取第二用户的第二目标操作,所述第二目标操作包含推送消息、修改消息或撤回消息;
第四获取模块920,用于获取所述第二用户的订阅用户列表,根据所述订阅用户列表确定至少一个第一用户的第一对象;
第二目标消息生成模块930,用于根据所述第二目标操作和所述至少一个第一用户的第一对象生成至少一个第二目标消息;
消息发布模块940,用于将所述至少一个第二目标消息对应发送至所述至少一个第一用户的第一对象以使所述至少一个第一用户的第一对象对消息进行处理。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的一种消息订阅方法或一种消息发布方法。
图10示出了一种用于实现本申请实施例所提供的方法的设备的硬件结构示意图,所述设备可以参与构成或包含本申请实施例所提供的装置或系统。如图10所示,设备10可以包括一个或多个(图中采用1002a、1002b,……,1002n来示出)处理器1002(处理器1002可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1004、以及用于通信功能的传输装置1006。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图10所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,设备10还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。
应当注意到的是上述一个或多个处理器1002和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到设备10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器1004可用于存储应用软件的软件程序以及模块,如本申请实施例中所述的方法对应的程序指令/数据存储装置,处理器1002通过运行存储在存储器1004内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种消息订阅方法或一种消息发布方法。存储器1004可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1004可进一步包括相对于处理器1002远程设置的存储器,这些远程存储器可以通过网络连接至设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括设备10的通信供应商提供的无线网络。在一个实例中,传输装置1006包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置1006可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与设备10(或移动设备)的用户界面进行交互。
本发明实施例还提供了一种计算机可读存储介质,所述存储介质可设置于服务器之中以保存用于实现方法实施例中一种消息订阅方法或一种消息发布方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的一种消息订阅方法或一种消息发布方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
由上述本发明提供的一种消息订阅、发布方法、装置、介质及设备的实施例可见,
(1)本发明提供的方案对于订阅方而言,可以将用户的消息订阅状态变得更为多样可控,消息推送的方式也能由用户控制;
(2)本发明提供的方案对于发布方而言,除了发布消息,还可以将发布的消息进行撤回或是修改,提供了更多的消息管理操作。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种消息订阅方法,其特征在于,所述方法包括:
获取第一用户对第二用户的第一目标操作,所述第一目标操作包含发起订阅、暂停订阅、恢复订阅或终止订阅;
获取所述第一用户的第一对象和所述第二用户的第二对象,所述第一对象和所述第二对象均包含状态和邮箱;
根据所述第一目标操作、所述第一对象和所述第二对象生成第一目标消息,根据所述第一目标消息更新所述第二用户的订阅用户列表或更新所述第一对象的状态;所述第一对象的状态指示所述第一用户对所述第二用户的订阅状态,所述第一对象的状态与所述第一对象的邮箱的消息接发功能关联;
根据所述第一用户的消息接收模式配置所述第一对象的邮箱的消息推送模式;所述消息推送模式指示所述第一用户所设置的将消息推送至所述第一用户的终端的形式;
根据所述第一对象的状态或所述第一对象的邮箱的消息推送模式对所述第二用户发布的消息进行处理。
2.根据权利要求1所述的一种消息订阅方法,其特征在于,所述第一目标操作为发起订阅时,所述方法还包括:
创建所述第一用户的第一对象,初始化所述第一对象的状态、邮箱和消息接发功能;
以及,
将所述第一目标消息发送至所述第二对象以将所述第一用户添加至所述第二用户的订阅用户列表中;
将所述第一对象的状态改为停止工作的状态;
生成订阅成功消息,将所述订阅成功消息发送至所述第一对象;
根据所述订阅成功消息将所述第一对象的状态改为正常工作的状态。
3.根据权利要求1所述的一种消息订阅方法,其特征在于,所述根据所述第一目标消息更新所述第二用户的订阅用户列表或更新所述第一对象的状态包括:
所述第一目标操作为暂停订阅时,根据所述第一目标消息将所述第一对象的状态改为暂停工作的状态,以及配置所述第一对象的邮箱的消息接发功能;
所述第一目标操作为恢复订阅时,根据所述第一目标消息将所述第一对象的状态改为正常工作的状态,以及配置所述第一对象的邮箱的消息接发功能。
4.根据权利要求1所述的一种消息订阅方法,其特征在于,所述第一目标操作为终止订阅时,所述根据所述第一目标消息更新所述第二用户的订阅用户列表或更新所述第一用户的第一对象的工作状态包括:
根据所述第一目标消息将所述第一用户从所述第二用户的订阅用户列表中移除;
根据所述第一目标消息解除所述第一用户与所述第一对象的绑定关系。
5.一种消息发布方法,其特征在于,所述方法包括:
获取第二用户的第二目标操作,所述第二目标操作包含推送消息、修改消息或撤回消息;
获取所述第二用户的订阅用户列表,根据所述订阅用户列表确定至少一个第一用户的第一对象;
根据所述第二目标操作和所述至少一个第一用户的第一对象生成至少一个第二目标消息;
将所述至少一个第二目标消息对应发送至所述至少一个第一用户的第一对象,以使所述至少一个第一用户的第一对象根据各第一对象的状态或对应的邮箱的消息推送模式对消息进行处理,其中所述第一对象的状态指示所述第一用户对所述第二用户的订阅状态,所述第一对象的状态与所述第一对象的邮箱的消息接发功能关联;所述消息推送模式指示对应的第一用户所设置的将消息推送至所述第一用户的终端的形式。
6.根据权利要求5所述的一种消息发布方法,其特征在于,所述方法还包括:
根据所述第二用户的第三目标操作生成第三目标消息,所述第三目标操作为查看订阅用户或冻结订阅用户;
根据所述第三目标消息获取所述至少一个第一用户的订阅状态信息;
根据所述订阅状态信息进行分析,得到订阅用户分析结果;
在所述第三目标操作为查看订阅用户时,将所述订阅用户分析结果发送至所述第二用户以使所述第二用户调整发布策略;
在所述第三目标操作为冻结订阅用户时,根据所述订阅用户分析结果确定所述订阅用户列表中的目标第一用户,将所述目标第一用户的第一对象的状态改为停止工作的状态。
7.一种消息订阅装置,其特征在于,所述装置包括:
第一获取模块,用于获取第一用户对第二用户的第一目标操作,所述第一目标操作包含发起订阅、暂停订阅、恢复订阅或终止订阅;
第二获取模块,用于获取所述第一用户的第一对象和所述第二用户的第二对象,所述第一对象和所述第二对象均包含状态和邮箱;
第一订阅配置模块,用于根据所述第一目标操作、所述第一对象和所述第二对象生成第一目标消息,根据所述第一目标消息更新所述第二用户的订阅用户列表或更新所述第一对象的状态;所述第一对象的状态指示所述第一用户对所述第二用户的订阅状态,所述第一对象的状态与所述第一对象的邮箱的消息接发功能关联;
第二订阅配置模块,用于根据所述第一用户的消息接收模式配置所述第一对象的邮箱的消息推送模式;所述消息推送模式指示所述第一用户所设置的将消息推送至所述第一用户的终端的形式;
消息处理模块,用于根据所述第一对象的状态或所述第一对象的邮箱的消息推送模式对所述第二用户发布的消息进行处理。
8.一种消息发布装置,其特征在于,所述装置包括:
第三获取模块,用于获取第二用户的第二目标操作,所述第二目标操作包含推送消息、修改消息或撤回消息;
第四获取模块,用于获取所述第二用户的订阅用户列表,根据所述订阅用户列表确定至少一个第一用户的第一对象;
第二目标消息生成模块,用于根据所述第二目标操作和所述至少一个第一用户的第一对象生成至少一个第二目标消息;
消息发布模块,用于将所述至少一个第二目标消息对应发送至所述至少一个第一用户的第一对象,以使所述至少一个第一用户的第一对象根据各第一对象的状态或对应的邮箱的消息推送模式对消息进行处理,其中所述第一对象的状态指示所述第一用户对所述第二用户的订阅状态,所述第一对象的状态与所述第一对象的邮箱的消息接发功能关联;所述消息推送模式指示对应的第一用户所设置的将消息推送至所述第一用户的终端的形式。
9.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1至5任一项所述的一种消息订阅方法或权利要求6至7任一项所述的一种消息发布方法。
10.一种计算机设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由所述处理器加载并执行如权利要求1至5任一项所述的一种消息订阅方法或权利要求6至7任一项所述的一种消息发布方法。
CN202011637447.1A 2020-12-31 2020-12-31 一种消息订阅、发布方法、装置、介质及设备 Active CN114710463B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011637447.1A CN114710463B (zh) 2020-12-31 2020-12-31 一种消息订阅、发布方法、装置、介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011637447.1A CN114710463B (zh) 2020-12-31 2020-12-31 一种消息订阅、发布方法、装置、介质及设备

Publications (2)

Publication Number Publication Date
CN114710463A CN114710463A (zh) 2022-07-05
CN114710463B true CN114710463B (zh) 2024-03-15

Family

ID=82167630

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011637447.1A Active CN114710463B (zh) 2020-12-31 2020-12-31 一种消息订阅、发布方法、装置、介质及设备

Country Status (1)

Country Link
CN (1) CN114710463B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104092767A (zh) * 2014-07-21 2014-10-08 北京邮电大学 一种增加消息队列模型的发布/订阅系统及其工作方法
CN105959383A (zh) * 2016-06-07 2016-09-21 北京百度网讯科技有限公司 内容订阅方法和装置
CN106130882A (zh) * 2016-07-13 2016-11-16 北京百度网讯科技有限公司 用于传输消息的方法和装置
WO2019051849A1 (zh) * 2017-09-18 2019-03-21 深圳市云中飞网络科技有限公司 订阅消息的方法及装置、计算机设备、计算机存储介质
CN110838024A (zh) * 2019-10-16 2020-02-25 支付宝(杭州)信息技术有限公司 基于深度强化学习的信息推送方法及装置、设备
CN111787055A (zh) * 2020-05-22 2020-10-16 中国科学院信息工程研究所 一种基于Redis且面向事务机制和多数据中心的数据分发方法和系统
CN112087770A (zh) * 2019-06-13 2020-12-15 华为技术有限公司 一种通知服务状态的方法、通信系统和通信装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135594B2 (en) * 2008-01-16 2012-03-13 International Business Machines Corporation Limiting proxy subscription propagation in a publish/subscribe message broker network

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104092767A (zh) * 2014-07-21 2014-10-08 北京邮电大学 一种增加消息队列模型的发布/订阅系统及其工作方法
CN105959383A (zh) * 2016-06-07 2016-09-21 北京百度网讯科技有限公司 内容订阅方法和装置
CN106130882A (zh) * 2016-07-13 2016-11-16 北京百度网讯科技有限公司 用于传输消息的方法和装置
WO2019051849A1 (zh) * 2017-09-18 2019-03-21 深圳市云中飞网络科技有限公司 订阅消息的方法及装置、计算机设备、计算机存储介质
CN112087770A (zh) * 2019-06-13 2020-12-15 华为技术有限公司 一种通知服务状态的方法、通信系统和通信装置
CN110838024A (zh) * 2019-10-16 2020-02-25 支付宝(杭州)信息技术有限公司 基于深度强化学习的信息推送方法及装置、设备
CN111787055A (zh) * 2020-05-22 2020-10-16 中国科学院信息工程研究所 一种基于Redis且面向事务机制和多数据中心的数据分发方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于Actor模型的软总线设计;李春雷等;计算机工程;第45卷(第05期);第79-81页 *
面向流数据的分布式时序同步系统的设计与实现;黄伟健;胡怀湘;;软件;20170215(02);第113-119页 *

Also Published As

Publication number Publication date
CN114710463A (zh) 2022-07-05

Similar Documents

Publication Publication Date Title
CN108449410B (zh) 一种云平台中消息管理方法、系统及相关装置
CN111611091A (zh) 一种业务对象的服务调用方法、装置及介质
Tang et al. Design and implementation of push notification system based on the MQTT protocol
US10904303B2 (en) Control message from streaming source to facilitate scaling
JP5270697B2 (ja) publish/subscribeメッセージ・ブローカ
CN103634409B (zh) 实现移动互联网应用永远在线的方法及系统
US20110321011A1 (en) Application server with a protocol-neutral programming model for developing telecommunications-based applications
US20120173614A1 (en) Event broker for an improved application server platform for telecom-based applications
CN109660400A (zh) 流控配置方法及系统
WO2013039798A2 (en) Distributing multi-source push notifications to multiple targets
CN102067102A (zh) 通过对等网络实现已安装的游戏软件的共享
CN106131185B (zh) 一种视频数据的处理方法、装置及系统
JP2001350855A (ja) オンデマンドサービス展開装置およびサービス提供方式
CN108390950A (zh) 一种消息推送方法、装置及设备
CN112839067B (zh) 一种数据同步方法及装置
CN104158868B (zh) 一种文件传输方法和管理服务器
CA2606193C (en) Method for providing wireless application privilege management
CN108781226A (zh) 通信系统
CN109412890B (zh) 基于dds的联合试验平台中间件节点状态检测方法
CN115185705A (zh) 一种消息通知方法、装置、介质及设备
CN114710463B (zh) 一种消息订阅、发布方法、装置、介质及设备
CN112511595B (zh) 一种消息推送方法及消息服务系统
CN109213955A (zh) 数据处理方法及相关设备
EP2812879A1 (en) Efficiently receiving messages across a large number of messaging entities
CN116233217B (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