CN109962931B - 信息推送方法、装置及系统 - Google Patents
信息推送方法、装置及系统 Download PDFInfo
- Publication number
- CN109962931B CN109962931B CN201711337036.9A CN201711337036A CN109962931B CN 109962931 B CN109962931 B CN 109962931B CN 201711337036 A CN201711337036 A CN 201711337036A CN 109962931 B CN109962931 B CN 109962931B
- Authority
- CN
- China
- Prior art keywords
- push
- service client
- alias
- service
- dimensions
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例提供一种信息推送方法、装置及系统。在本申请实施例的推送过程中,根据推送需求从以不同推送维度作为存储主键的至少两张信息表中选择符合推送需求的信息表,并基于该信息表中记载的各业务客户端在不同推送维度下的对象标识之间的绑定关系,确定符合推送需求的待推送业务客户端,进而向待推送业务客户端推送业务服务器需要推送的消息。由此可见,基于多种推送维度以及从不同推送维度进行存储的信息表,不仅可以满足多样化的推送需求,而有利于提高推送效率。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种信息推送方法、装置及系统。
背景技术
随着推送技术的发展,出现了为各类业务场景专门提供推送服务的推送业务。在推送业务中,各业务服务器通过推送服务器向其客户端推送消息。为了区分安装在不同终端设备上的客户端,推送服务器会根据客户端所在终端设备的硬件信息为客户端分配唯一的设备标识(ID)。
为了便于业务服务器使用推送业务,推送服务器会通过数据库维护客户端的别名与设备ID之间的对应关系。其中,客户端的别名是对业务服务器具有业务意义的信息,例如可以是客户端的用户名、账号等。当业务服务器需要向某终端设备上的客户端推送消息时,可以将客户端的别名发送给推送服务器,推送服务器根据客户端的别名查询数据库以获得对应的设备ID,然后向该设备ID所标识的客户端推送消息。
随着业务需求的不断发展,依据别名进行消息推送不再是唯一的推送需求,推送需求不断多样化。现有推送服务器的推送方式将无法满足越来越多样化的推送需求。因此,需要提供新的推送方法。
发明内容
本申请的多个方面提供一种信息推送方法、装置及系统,用以适应多样化的推送需求,提高推送效率。
本申请实施例提供一种信息推送方法,包括:
接收业务服务器发送的推送请求,所述推送请求包括第一推送维度下的第一对象标识;
从以不同推送维度作为存储主键的至少两张信息表中,选择以所述第一推送维度作为存储主键的第一信息表,所述第一信息表存储有各业务客户端在不同推送维度下的对象标识之间的绑定关系;
根据所述第一对象标识以及所述第一信息表中与所述第一对象标识存在绑定关系的其它推送维度下的对象标识,确定待推送业务客户端;
向所述待推送业务客户端推送所述业务服务器需要推送的消息。
本申请实施例还提供一种信息管理方法,包括:
接收第一业务客户端发送的绑定请求,所述绑定请求包括所述第一业务客户端在不同推送维度下的对象标识;
将所述第一业务客户端在不同推送维度下的对象标识分别存储到以不同推送维度作为存储主键的至少两张信息表中,所述至少两张信息表分别用于存储各业务客户端在不同推送维度下的对象标识之间的绑定关系。
本申请实施例还提供一种推送服务器,包括:通信组件、存储器和处理器;
所述通信组件,用于接收业务服务器发送的推送请求,所述推送请求包括第一推送维度下的第一对象标识;
所述存储器,用于存储程序以及以不同推送维度作为存储主键的至少两张信息表;
所述处理器耦合至所述存储器和所述通信组件,用于执行所述程序以用于:
从所述至少两张信息表中,选择以所述第一推送维度作为存储主键的第一信息表,所述第一信息表存储有各业务客户端在不同推送维度下的对象标识之间的绑定关系;
根据所述第一对象标识以及所述第一信息表中与所述第一对象标识存在绑定关系的其它推送维度下的对象标识,确定待推送业务客户端;
通过所述通信组件向所述待推送业务客户端推送所述业务服务器需要推送的消息;
所述通信组件,还用于向所述待推送业务客户端推送所述业务服务器需要推送的消息。
本申请实施例还提供一种推送服务器,包括:通信组件、存储器和处理器;
所述通信组件,用于接收第一业务客户端发送的绑定请求,所述绑定请求包括所述第一业务客户端在不同推送维度下的对象标识;
所述存储器,用于存储程序以及以不同推送维度作为存储主键的至少两张信息表,所述至少两张信息表分别用于存储各业务客户端在不同推送维度下的对象标识之间的绑定关系;
所述处理器耦合至所述存储器和所述通信组件,用于执行所述程序,以用于:将所述第一业务客户端在不同推送维度下的对象标识分别存储到所述至少两张信息表中。
本申请实施例还提供一种信息推送系统,包括:业务服务器、推送服务器以及至少一个业务客户端;
所述业务服务器,用于向所述推送服务器发送推送请求,所述推送请求包括第一推送维度下的第一对象标识;
所述推送服务器,用于接收所述推送请求,从以不同推送维度作为存储主键的至少两张信息表中,选择以所述第一推送维度作为存储主键的第一信息表,根据所述第一对象标识以及所述第一信息表中与所述第一对象标识存在绑定关系的其它推送维度下的对象标识,确定待推送业务客户端,并向所述待推送业务客户端推送所述业务服务器需要推送的消息;所述第一信息表存储有所述各业务客户端在不同推送维度下的对象标识之间的绑定关系;
所述待推送业务客户端,用于接收所述推送服务器推送的所述消息。
在本申请实施例中,在推送过程中,根据推送需求从以不同推送维度作为存储主键的至少两张信息表中选择符合推送需求的信息表,并基于该信息表中记载的各业务客户端在不同推送维度下的对象标识之间的绑定关系,确定符合推送需求的待推送业务客户端,进而向待推送业务客户端推送业务服务器需要推送的消息。由此可见,基于多种推送维度以及从不同推送维度进行存储的信息表,不仅可以满足多样化的推送需求,而有利于提高推送效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例提供的信息推送系统的结构示意图;
图2为本申请另一示例性实施例提供的推送服务器的业务流程示意图;
图3为本申请又一示例性实施例提供的信息推送方法的流程示意图;
图4为本申请又一示例性实施例提供的信息管理方法的流程示意图;
图5a为本申请又一示例性实施例提供的信息推送装置的结构示意图;
图5b为本申请又一示例性实施例提供的一种推送服务器的结构示意图;
图6a为本申请又一示例性实施例提供的信息管理装置的结构示意图;
图6b为本申请又一示例性实施例提供的另一种推送服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
面对推送需求的多样化,本申请实施例提供一种解决方案,基本思路是:针对推送需求的多样化,提供多种推送维度,允许业务客户端在不同推送维度下以不同的对象标识进行标识,并通过以不同推送维度作为存储主键的至少两张信息表来存储各业务客户端在不同推送维度下的对象标识之间的绑定关系。基于此,在推送过程中,根据推送需求从至少两张信息表中选择符合推送需求的信息表,并基于该信息表中记载的各业务客户端在不同推送维度下的对象标识之间的绑定关系,确定符合推送需求的待推送业务客户端,进而向待推送业务客户端推送业务服务器需要推送的消息。基于多种推送维度以及从不同推送维度进行存储的信息表,不仅可以满足多样化的推送需求,而有利于提高推送效率。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请一示例性实施例提供的信息推送系统的结构示意图。如图1所示,该系统包括:业务服务器10、推送服务器20以及至少一个业务客户端30。
业务服务器10是为满足各种业务需求,而设计的硬件和软件结合的平台,一般包括处理器、硬盘、内存、系统总线等组件,和通用的计算机架构类似。业务服务器10主要用于响应业务客户端30的业务请求进行业务处理,并向业务客户端30返回处理结果,以及向业务客户端30提供资源、存储业务客户端30的数据等等。其中,根据业务需求的不同,业务服务器10提供的业务功能也会有所不同。例如,业务服务器10可以是游戏类服务器、电商类服务器、即时通讯类服务器等。
业务客户端30与业务服务器10相对应,是为用户提供本地服务的程序,一般安装在用户的终端设备上,需要与业务服务器10互相配合运行。承载业务客户端30的终端设备可以是智能手机、平板电脑、个人电脑、穿戴设备等。终端设备通常包括至少一个处理单元和至少一个存储器。处理单元和存储器的数量取决于终端设备的配置和类型。存储器可以包括易失性的,例如RAM,也可以包括非易失性的,例如只读存储器(Read-Only Memory,ROM)、闪存等,或者也可以同时包括两种类型。存储器内通常存储有操作系统(OperatingSystem,OS)、一个或多个应用程序(例如业务客户端30),也可以存储有程序数据等。除了处理单元和存储器之外,终端设备还包括一些基本配置,例如网卡芯片、IO总线、音视频组件等。可选地,终端设备还可以包括一些外围设备,例如键盘、鼠标、输入笔、打印机等。这些外围设备在本领域中是总所周知的,在此不做赘述。
为了提高用户活跃度和留存率,业务服务器10需要向业务客户端30推送的消息数量不断增多,例如各种通知消息、事件提醒、定期推广消息等。不断丰富的消息推送功能,会增加业务服务器10的开发成本和处理负担。因此,在本实施例提供的消息推送系统中增设推送服务器20,由推送服务器20向业务服务器10和业务客户端30提供推送服务,完成消息推送。这样不仅可以高效、精确、实时地向业务客户端30推送消息,还可以降低业务服务器10的开发成本和处理负担。
推送服务器20可以是任何具有一定计算和通信能力,能够响应服务请求,并进行处理的设备,例如可以是常规服务器、云服务器、云主机、虚拟中心等。推送服务器20的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
在本实施例提供的消息推送系统中,业务服务器10与推送服务器20之间建立有通信连接,推送服务器20与至少一个业务客户端30之间也建立有通信连接。业务服务器20可以不直接向业务客户端30推送消息,而是通过推送服务器20向业务客户端30推送消息。
在很多推送场景中,业务服务器20可能需要向不同的业务客户端30推送不同的消息。基于此,推送服务器20需要区别安装在不同终端设备上的业务客户端30。为便于区分,推送服务器20可以在业务客户端30的安装过程中,获取业务客户端30所在终端设备的硬件信息,并根据业务客户端30所在终端设备的硬件信息为业务客户端30分配唯一的设备ID。该设备ID可以唯一标识安装于某个终端设备上的业务客户端30。这意味着,安装于不同终端设备上的业务客户端30具有不同的设备ID。另外,为了便于业务服务器10使用推送业务,推送服务器20维护业务客户端30的别名与设备ID之间的对应关系。其中,业务客户端30的别名是对业务服务器具有业务意义的信息,例如可以是用户在业务客户端30上注册的用户名、账号等。
当业务服务器10需要通过推送服务器20向某个或某些业务客户端30推送消息时,可以向推送服务器20发送推送请求,并在推送请求中携带待推送业务客户端的别名。推送服务器20接收业务服务器10发送的推送请求,根据推送请求中携带的待推送业务客户端的别名,从所维护的别名与设备ID之间的对应关系中,确定待推送业务客户端的设备ID;然后将业务服务器10需要推送的消息推送给该设备ID所标识的业务客户端,完成消息的推送。
随着业务需求的不断发展,业务服务器10除了可以依据别名进行消息推送之外,还可以依据设备ID、各类标签等进行消息推送。为了满足多样化的推送需求,本实施例提出多种推送维度,并允许业务客户端30在不同推送维度下以不同对象标识进行标识。其中,推送维度的数量可根据应用需求而定。举例说明,多种推送维度可以包括别名维度、设备ID维度、标签维度等。例如,在别名维度下,业务客户端30可以通过别名进行区分,不同别名标识不同的业务客户端30,业务客户端30的别名是业务客户端30在别名维度下的对象标识。例如,在设备ID维度下,业务客户端30可以通过设备ID进行区分,不同设备ID标识不同的业务客户端30,业务客户端30的设备ID是业务客户端30在设备ID维度下的对象标识。其中,同一业务客户端30在不同推送维度下的对象标识可形成一种绑定关系。在这种绑定关系中,两个推送维度下的对象标识之间可以是一对一关系、多对一关系,或者一对多关系。以别名和设备ID为例,对不同推送维度下的对象标识之间的绑定关系进行说明:
例如,在一应用场景中,用户有2个终端设备,分别是手机和平板电脑,用户在这2个终端设备上分别安装了业务客户端30(例如钉钉),并且用户通过同一别名(例如用户在钉钉上注册的账号或用户名或手机号)登录两个终端设备上的业务客户端30。在这个应用场景下,一个别名对应2个设备ID。
又例如,在另一应用场景中,用户在一个终端设备上安装业务客户端30之后并未登录,用户为这个业务客户端30自定义了一个别名(例如用户用手机号1注册的账号1)并与业务客户端30的设备ID进行了绑定。后续,用户使用新注册的别名(例如用户手机号2注册的账号2)登录这个业务客户端30并与业务客户端30的设备ID进行了绑定。在这个应用场景下,一个设备ID对应了2个别名。
在其它应用场景中,一个设备ID可能会对应更多个别名,一个别名也可能会对应更多个设备ID。另外,随着推送维度的不断增多,绑定关系中除了包括别名和设备ID,还会包括业务客户端30在其它推送维度下的对象标识。由此可见,业务客户端30在不同推送维度下的对象标识之间的绑定关系会越来越多、越来越复杂。于是,如何更加科学、合理的管理这种绑定关系是在解决多样化推送需求过程中面临的重要问题。
在本实施例中,通过至少两张信息表来存储这种业务客户端30在不同推送维度下的对象标识之间的绑定关系。至少两张信息表中存储的内容相同,都是业务客户端30在不同推送维度下的对象标识之间的绑定关系,区别在于:不同信息表中的存储主键不同,每张信息表分别以一个推送维度作为存储主键。采用这种信息管理方式,可以为不同推送需求提供与之适配的信息表,便于快速、高效地确定待推送业务客户端,进而提高推送效率。
例如,以上述别名与设备ID之间的绑定关系为例,推送服务器20可以创建两张信息表,一张是以设备ID维度为存储主键的设备-别名信息表,一张是以别名维度为存储主键的别名-设备信息表。其中,别名-设备信息表又可称为alipush_alias_device表;设备-别名信息表又可称为alipush_device_alias表。
本实施例并不限定上述信息表的实现形式,例如可以采用非关系型数据库(NoSQL)数据表。例如,alipush_alias_device表可以采用NoSQL数据表,该表的一种实现结构如下:
相应地,alipush_device_alias表也可以采用NoSQL数据表,该表的一种实现结构如下:
在上述表结构中,“alias”表示别名,“aliasn”表示第n个别名;“deviceId”表示设备ID,“deviceIdn”表示第n个设备ID。其中,n是自然数。这里仅是示例,表结构以及表结构中各对象标识的表示方式均不限于此。
基于上述以不同推荐维度作为存储主键的至少两张信息表,业务服务器10通过推送服务器20向业务客户端30推送消息的过程如下:
业务服务器10在需要向业务客户端30推送消息时,可以向推送服务器20发送推送请求,该推送请求中包括第一推送维度下的第一对象标识。这表示业务服务器10要按照第一推送维度下的第一对象标识进行消息推送。第一推送维度是业务服务器10所支持的多个推送维度中的任意一个。第一对象标识可以是一个也可以是多个,是某个或某些业务客户端30在第一推送维度下的标识。例如,第一推送维度可以是别名维度,则第一对象标识可以是某个或某些业务客户端30的别名。
推送服务器20接收业务服务器10发送的推送请求,获知业务服务器10要按照第一推送维度下的第一对象标识向相应业务客户端30推送消息。基于此,推送服务器20从以不同推送维度作为存储主键的至少两张信息表中,选择以第一推送维度作为存储主键的第一信息表。第一信息表中存储有各业务客户端30在不同推送维度下的对象标识之间的绑定关系。然后,推送服务器20根据第一对象标识以及第一信息表中与第一对象标识存在绑定关系的其它推送维度下的对象标识,确定待推送业务客户端。简单来说,推送服务器20可以根据各推送维度下的对象标识一起确定待推送业务客户端。
接下来,推送服务器20向待推送业务客户端推送业务服务器10需要推送的消息。
在一示例性实施方式中,业务服务器10需要推送的消息可以携带在推送请求中提供给推送服务器20。基于此,推送服务器20可以从推送请求中获取业务服务器10需要推送的消息并推送给待推送业务客户端。
在另一示例性实施方式中,推送服务器20可以为业务服务器10提供消息存储空间。基于此,业务服务器10可以将需要推送的消息上传至该消息存储空间中;推送服务器20可以从该消息存储空间中获取业务服务器10需要推送的消息并推送给待推送业务客户端。
在又一示例性实施方式中,推送服务器20在接收到业务服务器10发送的推送请求之后,可以向业务服务器10请求业务服务器10需要推送的消息,待业务服务器10返回其需要推送的消息后推送给待推送业务客户端。
由上述可见,在本实施例提供的消息推送系统中,针对推送需求的多样化,提供多种推送维度,允许业务客户端在不同推送维度下以不同的对象标识进行标识,并通过以不同推送维度作为存储主键的至少两张信息表来存储各业务客户端在不同推送维度下的对象标识之间的绑定关系。基于此,在推送过程中,根据推送需求从至少两张信息表中选择符合推送需求的信息表,并基于该信息表中记载的各业务客户端在不同推送维度下的对象标识之间的绑定关系,确定符合推送需求的待推送业务客户端,进而向待推送业务客户端推送业务服务器需要推送的消息。基于多种推送维度以及从不同推送维度进行存储的信息表,不仅可以满足多样化的推送需求,而有利于提高推送效率。
在上述实施例中,重点描述了基于至少两张信息表进行消息推送的过程。除此之外,推送服务器20需要管理至少两张信息表。对至少两张信息表的管理主要涉及:针对业务客户端,在信息表中新增或创建绑定关系,以及将信息表中的相关绑定关系删除等。下面分别进行说明:
新增绑定关系:推送服务器20可以根据业务客户端的绑定请求,在至少两张信息表中增加新的绑定关系。其中,为不同业务客户端在信息表中增加绑定关系的过程相同,因此在下面描述中以第一业务客户端为例进行说明。第一业务客户端可以是任一业务客户端。
例如,第一业务客户端可以向推送服务器20发送绑定请求,并在绑定请求中包括第一业务客户端在不同维度下的对象标识。推送服务器20接收第一业务客户端发送的绑定请求,从该绑定请求中获取第一业务客户端在不同推送维度下的对象标识,将第一业务客户端在不同推送维度下的对象标识分别存储到至少两张信息表中。
删除绑定关系:在使用至少两张信息表的过程中,推送服务器20可以根据业务客户端的解绑定请求,在至少两张信息表中删除已有绑定关系。其中,为不同业务客户端从至少两张信息表中删除绑定关系的过程相同,因此在下面描述中以第二业务客户端为例进行说明。第二业务客户端可以是任一业务客户端。
例如,第二业务客户端可以向推送服务器20发送解绑定请求,并在解绑定请求中包括第二业务客户端在待解绑定的推送维度下的对象标识。推送服务器20可以接收第二业务客户端发送的解绑定请求,从解绑定请求获取第二业务客户端在待解绑定的推送维度下的对象标识,从至少两张信息表中将第二业务客户端在该待解绑定的推送维度下的对象标识的绑定关系删除。根据应用需求的不同,第二业务客户端可以针对不同推送维度之间的绑定关系做解除处理。
在一示例性实施例中,不同推送维度包括别名维度和设备维度;相应地,至少两张信息表包括以设备维度作为存储主键的设备-别名信息表以及以别名维度作为存储主键的别名-设备信息表。下面将结合图2所示业务流程示例图,对本申请上述各实施例的操作进行示例性说明。其中,设备-别名信息表和别名-设备信息表的示例性实现结构如前面所述,在此不再赘述。
可选地,为了便于及时接收推送消息,第一业务客户端可以在成功登录后,向推送服务器20发送绑定请求,该绑定请求包括第一业务客户端的别名和设备ID。这里的别名主要是指第一客户端登录所需的用户名或账号或手机号码等。推送服务器20接收第一客户端在成功登录后发送的绑定请求,从中获取第一业务客户端的别名和设备ID;然后,将第一业务客户端的别名存储在别名-设备信息表中存储主键所在的信息列中,并将第一业务客户端的设备ID存储在第一业务客户端的别名对应的属性列中;将第一业务客户端的设备ID在设备-别名信息表中存储主键所在的信息列中,并将第一业务客户端的别名存储在第一业务客户端的设备ID对应的属性列中。值得说明的是,这里并不限定向别名-设备信息表和设备-别名信息表中存储第一业务客户端的别名和设备ID的先后顺序。
可选地,在一些应用场景中,用户可能会注销第二业务客户端的别名。此时,第二业务客户端可以向推送服务器20发送解绑定请求,并在解绑定请求中携带第二业务客户端的别名,这意味着需要将所有与第二业务客户端的别名相关的绑定关系都删除。推送服务器20接收第二业务客户端发送的解绑定请求,从中获取第二业务客户端的别名,从别名-设备信息表中删除第二业务客户端的别名以及对应的各设备ID,并从设备-别名信息表中删除第二业务客户端的别名。其中,删除操作的一种实施方式包括:推送服务器20先查询别名-设备信息表,获取第二业务客户端的别名对应的设备ID集合,从别名-设备信息表中删除第二业务客户端的别名以及设备ID集合中的所有设备ID;然后查询设备-别名信息表,从中获取该设备ID集合中各设备ID对应的别名集合,从各别名集合中删除第二业务客户端的别名。
可选地,在一些应用场景中,用户可能需要更改终端设备。此时,若第二业务客户端可以接收到用户的更换指令或解除指令,第二业务客户端可以向推送服务器20发送解绑定请求,并在解绑定请求中携带第二业务客户端的设备ID,这意味着需要将所有与第二业务客户端的设备ID相关的绑定关系都删除。推送服务器20接收第二业务客户端发送的解绑定请求,从中获取第二业务客户端的设备ID,从设备-别名信息表中删除第二业务客户端的设备ID以及对应的各别名,并从别名-设备信息表中删除第二业务客户端的设备ID。其中,删除操作的一种实施方式包括:推送服务器20先查询设备-别名信息表,获取第二业务客户端的设备ID对应的别名集合,从设备-别名信息表中删除第二业务客户端的设备ID以及别名集合中的所有别名;然后查询别名-设备信息表,从中获取该别名集合中各别名对应的设备ID集合,从各设备ID集合中删除第二业务客户端的设备ID。
除了上述方式之外,可以设定一个长链接断开时长阈值,推送服务器20监听与第二业务客户端之间的长链接情况。当第二业务客户端与推送服务器20断开长链接的时间长度大于该时长阈值时,可以认为用户更换了终端设备,则推送服务器20可以主动从设备-别名信息表和别名-设备信息表中将所有与第二业务客户端的设备ID相关的绑定关系都删除。这样可以节约存储空间,提高存储空间利用率。
可选地,在一些应用场景中,用户不使用第二业务客户端时可以退出登录。此时,第二业务客户端可以向推送服务器20发送解绑定请求,并在解绑定请求中携带第二业务客户端的别名和设备ID,这意味着用户不再使用该解绑定请求中的别名登录该解绑定请求中的设备ID所标识的业务客户端,即需要将第二业务客户端的设备ID与该解绑定请求中第二业务客户端的别名之间的绑定关系删除。推送服务器20接收第二业务客户端发送的解绑定请求,从中获取第二业务客户端的别名和设备ID,从别名-设备信息表中删除该解绑定请求中第二业务客户端的别名对应的第二业务客户端的设备ID,并从设备-别名信息表中删除第二业务客户端的设备ID对应的该解绑定请求中第二业务客户端的别名。这里也不限定推送服务器20在两张信息表中执行删除操作的先后顺序。
进一步,结合上述别名维度和设备维度,对业务服务器10的推送需求进行举例说明。
在一应用场景中,业务服务器10可以以别名维度进行消息推送。例如,可以向别名维度下第一别名对应的业务客户端推送消息。业务服务器10可以向推送服务器20发送推送请求,推送请求中携带别名维度下的第一别名。推送服务器20接收业务服务器10发送的推送请求,从中获取别名维度下的第一别名;然后从所维护的两张信息表中,获取以别名维度作为存储主键的别名-设备信息表;从别名-设备信息表中获取第一别名对应的各设备ID,然后将以第一别名登录并且安装于第一别名对应的各设备ID所标识的终端设备上的业务客户端,作为待推送业务客户端,并向待推送业务客户端推送业务服务器10需要推送的消息。其中,第一别名对应的设备ID可以是一个,也可以是两个或两个以上。例如,以一种即时通讯客户端为例,假设用户使用第一别名(登录账号)分别登录了手机和平板电脑上的即时通讯客户端,则推送服务器20需要分别向手机和平板电脑上的即时通讯客户端推送消息。
在另一应用场景中,业务服务器10可以以设备维度进行消息推送。例如,可以向设备维度下第一设备ID标识的业务客户端推送消息。业务服务器10可以向推送服务器20发送推送请求,推送请求中携带设备维度下的第一设备ID。推送服务器20接收业务服务器10发送的推送请求,从中获取设备维度下的第一设备ID;然后从所维护的两张信息表中,获取以设备维度作为存储主键的设备-别名信息表;从设备-别名信息表中获取第一设备ID对应的各别名,然后将以第一设备ID对应的各别名分别登录并且安装于第一设备ID所标识的终端设备上的业务客户端,作为待推送业务客户端,并向待推送业务客户端推送业务服务器10需要推送的消息。其中,第一设备ID对应的别名可以是一个,也可以是两个或两个以上。例如,以一种即时通讯客户端为例,假设用户使用不同的别名(登录账号)分别登录了个人电脑上的即时通讯客户端,此时个人电脑上存在两个以不同别名登录的即时通讯客户端,但因为这两个即时通讯客户端承载于同一个人电脑上,因此具有相同的设备ID,则推送服务器20需要分别向以不同别名登录的即时通讯客户端推送消息。
在上述过程中,业务服务器10以不同推送维度进行消息推送时,推送服务器20可以选择适配的信息表,信息表的查询效率较高,有利于提高确定待推送客户端的效率,进而提高推送效率。
图3为本申请又一示例性实施例提供的信息推送方法的流程示意图。该方法主要是从推送服务器的角度进行的描述。如图3所示,该方法包括:
301、接收业务服务器发送的推送请求,推送请求包括第一推送维度下的第一对象标识。
302、从以不同推送维度作为存储主键的至少两张信息表中,选择以第一推送维度作为存储主键的第一信息表,第一信息表存储有各业务客户端在不同推送维度下的对象标识之间的绑定关系。
303、根据第一对象标识以及第一信息表中与第一对象标识存在绑定关系的其它推送维度下的对象标识,确定待推送业务客户端。
304、向待推送业务客户端推送业务服务器需要推送的消息。
在本实施例中,业务服务器10可以是提供不同业务功能的服务器,例如可以是游戏类服务器、电商类服务器、即时通讯类服务器等。业务客户端与业务服务器相对应,是为用户提供本地服务的程序,一般安装在用户的终端设备上,需要与业务服务器互相配合运行。承载业务客户端的终端设备可以是智能手机、平板电脑、个人电脑、穿戴设备等。
在本实施例中,为了满足业务服务器多样化的推送需求,提出多种推送维度,并允许业务客户端在不同推送维度下以不同对象标识进行标识。其中,推送维度的数量可根据应用需求而定。举例说明,多种推送维度可以包括别名维度、设备ID维度、标签维度等。例如,在别名维度下,业务客户端可以通过别名进行区分,不同别名标识不同的业务客户端,业务客户端的别名是业务客户端在别名维度下的对象标识。例如,在设备ID维度下,业务客户端可以通过设备ID进行区分,不同设备ID标识不同的业务客户端,业务客户端的设备ID是业务客户端在设备ID维度下的对象标识。其中,同一业务客户端在不同推送维度下的对象标识可形成一种绑定关系。在本实施例中,通过以不同推送维度作为存储主键的至少两张信息表来存储各业务客户端在不同推送维度下的对象标识之间的绑定关系,以适应多样化推送需求。
在多种推送维度以及从不同推送维度进行存储的信息表的基础上,当业务服务器需要向某个或某些业务客户端推送消息时,可以发送推送请求,该推送请求中包括第一推送维度下的第一对象标识。这表示业务服务器要按照第一推送维度下的第一对象标识进行消息推送。
推送服务器接收业务服务器发送的推送请求,获知业务服务器要按照第一推送维度下的第一对象标识向相应业务客户端推送消息。基于此,推送服务器从以不同推送维度作为存储主键的至少两张信息表中,选择以第一推送维度作为存储主键的第一信息表。第一信息表中存储有各业务客户端在不同推送维度下的对象标识之间的绑定关系。然后,推送服务器根据第一对象标识以及第一信息表中与第一对象标识存在绑定关系的其它推送维度下的对象标识,确定待推送业务客户端。简单来说,推送服务器可以根据各推送维度下的对象标识一起确定待推送业务客户端。
在确定待推送业务客户端之后,推送服务器向待推送业务客户端推送业务服务器10需要推送的消息。
在一示例性实施方式中,业务服务器需要推送的消息可以携带在推送请求中提供给推送服务器。基于此,推送服务器可以从推送请求中获取业务服务器需要推送的消息并推送给待推送业务客户端。
在另一示例性实施方式中,推送服务器可以为业务服务器提供消息存储空间。基于此,业务服务器可以将需要推送的消息上传至该消息存储空间中;推送服务器可以从该消息存储空间中获取业务服务器需要推送的消息并推送给待推送业务客户端。
在又一示例性实施方式中,推送服务器在接收到业务服务器发送的推送请求之后,可以向业务服务器请求业务服务器需要推送的消息,待业务服务器返回其需要推送的消息后推送给待推送业务客户端。
在本实施例中,基于多种推送维度以及从不同推送维度进行存储的信息表,不仅可以满足多样化的推送需求,而有利于提高推送效率。
在一些实施例中,除了使用至少两张信息表之外,还需要管理和维护至少两张信息表。其中,对至少两张信息表的管理主要涉及:针对业务客户端,在信息表中新增或创建绑定关系,以及将信息表中的相关绑定关系删除等。
基于上述,所述方法可以包括在至少两张信息表中增加新的绑定关系的操作。其中,为不同业务客户端在至少两张信息表中增加绑定关系的过程相同,因此在下面描述中以第一业务客户端为例进行说明。第一业务客户端可以是任一业务客户端。基于此,为第一业务客户端在至少两张信息表中增加绑定关系的过程包括:接收至少一个业务客户端中第一业务客户端发送的绑定请求,该绑定请求包括第一业务客户端在不同推送维度下的对象标识;将第一业务客户端在不同推送维度下的对象标识分别存储到至少两张信息表中。
相应地,所述方法也可以包括在至少两张信息表中增删除已有绑定关系的操作。其中,为不同业务客户端从至少两张信息表中删除绑定关系的过程相同,因此在下面描述中以第二业务客户端为例进行说明。第二业务客户端可以是任一业务客户端。基于此,为第二业务客户端从至少两张信息表中删除绑定关系的过程包括:接收至少一个业务客户端中第二业务客户端发送的解绑定请求,该解绑定请求包括第二业务客户端在待解绑定的推送维度下的对象标识;从至少两张信息表中将第二业务客户端在待解绑定的推送维度下的对象标识的绑定关系删除。
在一示例性实施例中,不同推送维度包括别名维度和设备维度;相应地,至少两张信息表包括以设备维度作为存储主键的设备-别名信息表以及以别名维度作为存储主键的别名-设备信息表。
在不同推送维度包括别名维度和设备维度的情况下,一种为第一业务客户端在至少两张信息表中增加绑定关系的过程包括:接收第一客户端发送的绑定请求,从中获取第一业务客户端的别名和设备ID;然后,将第一业务客户端的别名存储在别名-设备信息表中存储主键所在的信息列中,并将第一业务客户端的设备ID存储在第一业务客户端的别名对应的属性列中;将第一业务客户端的设备ID在设备-别名信息表中存储主键所在的信息列中,并将第一业务客户端的别名存储在第一业务客户端的设备ID对应的属性列中。值得说明的是,这里并不限定向别名-设备信息表和设备-别名信息表中存储第一业务客户端的别名和设备ID的先后顺序。
在不同推送维度包括别名维度和设备维度的情况下,结合不同应用场景,为第二业务客户端从至少两张信息表中删除绑定关系包括但不限于以下几种情况:
在一些应用场景中,用户可能会注销第二业务客户端的别名。此时,第二业务客户端发送的解绑定请求中携带第二业务客户端的别名,这意味着需要将所有与第二业务客户端的别名相关的绑定关系都删除。则一种为第二业务客户端从至少两张信息表中删除绑定关系的过程包括:
接收第二业务客户端发送的解绑定请求,从中获取第二业务客户端的别名,从别名-设备信息表中删除第二业务客户端的别名以及对应的各设备ID,并从设备-别名信息表中删除第二业务客户端的别名。其中,删除操作的一种实施方式包括:先查询别名-设备信息表,获取第二业务客户端的别名对应的设备ID集合,从别名-设备信息表中删除第二业务客户端的别名以及设备ID集合中的所有设备ID;然后查询设备-别名信息表,从中获取该设备ID集合中各设备ID对应的别名集合,从各别名集合中删除第二业务客户端的别名。
在一些应用场景中,用户可能需要更改终端设备。此时,若第二业务客户端可以接收到用户的更换指令或解除指令,第二业务客户端发送的解绑定请求中携带第二业务客户端的设备ID,这意味着需要将所有与第二业务客户端的设备ID相关的绑定关系都删除。则另一种为第二业务客户端从至少两张信息表中删除绑定关系的过程包括:
接收第二业务客户端发送的解绑定请求,从中获取第二业务客户端的设备ID,从设备-别名信息表中删除第二业务客户端的设备ID以及对应的各别名,并从别名-设备信息表中删除第二业务客户端的设备ID。其中,删除操作的一种实施方式包括:先查询设备-别名信息表,获取第二业务客户端的设备ID对应的别名集合,从设备-别名信息表中删除第二业务客户端的设备ID以及别名集合中的所有别名;然后查询别名-设备信息表,从中获取该别名集合中各别名对应的设备ID集合,从各设备ID集合中删除第二业务客户端的设备ID。
除了上述方式之外,可以设定一个长链接断开时长阈值,推送服务器监听与第二业务客户端之间的长链接情况。当第二业务客户端与推送服务器断开长链接的时间长度大于该时长阈值时,可以认为用户更换了终端设备,则推送服务器可以主动从设备-别名信息表和别名-设备信息表中将所有与第二业务客户端的设备ID相关的绑定关系都删除。这样可以节约存储空间,提高存储空间利用率。
在又一些应用场景中,用户不使用第二业务客户端时可以退出登录。此时,第二业务客户端发送的解绑定请求中携带第二业务客户端的别名和设备ID,这意味着用户不再使用该解绑定请求中的别名登录该解绑定请求中的设备ID所标识的业务客户端,即需要将第二业务客户端的设备ID与该解绑定请求中第二业务客户端的别名之间的绑定关系删除。则又一种为第二业务客户端从至少两张信息表中删除绑定关系的过程包括:
接收第二业务客户端发送的解绑定请求,从中获取第二业务客户端的别名和设备ID,从别名-设备信息表中删除该解绑定请求中第二业务客户端的别名对应的第二业务客户端的设备ID,并从设备-别名信息表中删除第二业务客户端的设备ID对应的该解绑定请求中第二业务客户端的别名。这里也不限定推送服务器20在两张信息表中执行删除操作的先后顺序。
在不同推送维度包括别名维度和设备维度的情况下,对业务服务器10的推送需求进行举例说明。
在一应用场景中,业务服务器可以以别名维度进行消息推送。例如,可以向别名维度下第一别名对应的业务客户端推送消息。则业务服务器发送的推送请求中携带别名维度下的第一别名。基于此,在步骤302中,可以从所维护的两张信息表中,获取以别名维度作为存储主键的别名-设备信息表。相应地,在步骤303中,可以从别名-设备信息表中获取第一别名对应的各设备ID,然后将以第一别名登录并且安装于第一别名对应的各设备ID所标识的终端设备上的业务客户端,作为待推送业务客户端。
在另一应用场景中,业务服务器可以以设备维度进行消息推送。例如,可以向设备维度下第一设备ID标识的业务客户端推送消息。则业务服务器发送的推送请求中携带设备维度下的第一设备ID。基于此,在步骤302中,可以从所维护的两张信息表中,获取以设备维度作为存储主键的设备-别名信息表。相应地,在步骤303中,可以从设备-别名信息表中获取第一设备ID对应的各别名,然后将以第一设备ID对应的各别名分别登录并且安装于第一设备ID所标识的终端设备上的业务客户端,作为待推送业务客户端。
由上述可知,当业务服务器以不同推送维度进行消息推送时,可以选择适配的信息表,信息表的查询效率较高,有利于提高确定待推送客户端的效率,进而提高推送效率。
图4为本申请又一示例性实施例提供的信息管理方法的流程示意图。如图4所示,该方法包括:
401、接收第一业务客户端发送的绑定请求,绑定请求包括第一业务客户端在不同推送维度下的对象标识。
402、将第一业务客户端在不同推送维度下的对象标识分别存储到以不同推送维度作为存储主键的至少两张信息表中,至少两张信息表分别用于存储各业务客户端在不同推送维度下的对象标识之间的绑定关系。
为了满足多样化的推送需求,在本申请其它实施例中提出了多种推送维度,并允许业务客户端在不同推送维度下以不同对象标识进行标识。其中,推送维度的数量可根据应用需求而定。举例说明,多种推送维度可以包括别名维度、设备ID维度、标签维度等。同一业务客户端在不同推送维度下的对象标识可形成一种绑定关系。在这种绑定关系中,两个推送维度下的对象标识之间可以是一对一关系、多对一关系,或者一对多关系。另外,推送维度也会不断增多。这些使得业务客户端在不同推送维度下的对象标识之间的绑定关系会越来越多、越来越复杂。
为了更加科学、合理的管理这种绑定关系,本实施例通过至少两张信息表来存储这种业务客户端在不同推送维度下的对象标识之间的绑定关系。至少两张信息表中存储的内容相同,都是业务客户端在不同推送维度下的对象标识之间的绑定关系,区别在于:不同信息表中的存储主键不同,每张信息表分别以一个推送维度作为存储主键。采用这种信息管理方式,可以为不同推送需求提供与之适配的信息表,便于快速、高效地确定待推送业务客户端,进而提高推送效率。
其中,对至少两张信息表的管理涉及为业务客户端在信息表中新增或创建绑定关系。以第一业务客户端为例,为第一业务客户端在至少两张信息表中增加绑定关系的过程包括:接收第一业务客户端发送的绑定请求,该绑定请求包括所述第一业务客户端在不同推送维度下的对象标识;将第一业务客户端在不同推送维度下的对象标识分别存储到以不同推送维度作为存储主键的至少两张信息表中。
除上述之外,对至少两张信息表的管理涉及还涉及为业务客户端将信息表中的相关绑定关系删除。以第二业务客户端为例,为第二业务客户端从至少两张信息表中删除绑定关系的过程包括:接收至少一个业务客户端中第二业务客户端发送的解绑定请求,该解绑定请求包括第二业务客户端在待解绑定的推送维度下的对象标识;从至少两张信息表中将第二业务客户端在待解绑定的推送维度下的对象标识的绑定关系删除。
关于增加绑定关系和删除绑定关系的详细描述可参见前述实施例,在此不再赘述。
本实施例采用不同信息表,分别以不同推送维度作为存储主键来存储业务客户端在不同推送维度下的对象标识之间的绑定关系,有利于提高信息表的使用性能,提高信息表的查询效率,为提高推送效率提供了条件。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤301至步骤304的执行主体可以为设备A;又比如,步骤301和302的执行主体可以为设备A,步骤303和304的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如301、302等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图5a为本申请又一示例性实施例提供的信息推送装置的结构示意图。如图5a所示,该装置包括:接收模块51、选择模块52、确定模块53和推送模块54。
接收模块51,用于接收业务服务器发送的推送请求,推送请求包括第一推送维度下的第一对象标识。
选择模块52,用于从以不同推送维度作为存储主键的至少两张信息表中,选择以第一推送维度作为存储主键的第一信息表,第一信息表存储有各业务客户端在不同推送维度下的对象标识之间的绑定关系。
确定模块53,用于根据第一对象标识以及第一信息表中与第一对象标识存在绑定关系的其它推送维度下的对象标识,确定待推送业务客户端。
推送模块54,用于向待推送业务客户端推送业务服务器需要推送的消息。
在一些示例性实施例中,接收模块51还用于:接收各业务客户端中第一业务客户端发送的绑定请求,绑定请求包括第一业务客户端在不同推送维度下的对象标识。相应地,该信息推送装置还可以包括:存储模块。存储模块用于将第一业务客户端在不同推送维度下的对象标识分别存储到至少两张信息表中。
在一些示例性实施例中,接收模块51还用于:接收各业务客户端中第二业务客户端发送的解绑定请求,解绑定请求包括第二业务客户端在待解绑定的推送维度下的对象标识。相应地,该信息推送装置还可以包括:删除模块。删除模块用于从至少两张信息表中将第二业务客户端在待解绑定的推送维度下的对象标识的绑定关系删除。
在一些示例性实施例中,不同推送维度包括别名维度和设备维度;至少两张信息表包括以设备维度作为存储主键的设备-别名信息表以及以别名维度作为存储主键的别名-设备信息表。
基于上述别名维度和设备维度,在一种示例性实施例中,绑定请求包括第一业务客户端的别名以及标识第一业务客户端所在终端设备的设备ID。基于此,存储模块具体用于:将第一业务客户端的别名存储在别名-设备信息表中存储主键所在的信息列中,并将第一业务客户端的设备ID存储在第一业务客户端的别名对应的属性列中;将第一业务客户端的设备ID在设备-别名信息表中存储主键所在的信息列中,并将第一业务客户端的别名存储在第一业务客户端的设备ID对应的属性列中。
基于上述别名维度和设备维度,在一种示例性实施例中,删除模块具体用于:
若解绑定请求包括第二业务客户端的别名,从别名-设备信息表中删除第二业务客户端的别名以及对应的各设备ID,并从设备-别名信息表中删除第二业务客户端的别名;或者
若解绑定请求包括第二业务客户端的设备ID,从设备-别名信息表中删除第二业务客户端的设备ID以及对应的各别名,并从别名-设备信息表中删除第二业务客户端的设备ID;或者
若解绑定请求包括第二业务客户端的别名和设备ID,从设备-别名信息表中删除第二业务客户端的设备ID对应的第二业务客户端的别名,并从别名-设备信息表中删除第二业务客户端的别名对应的第二业务客户端的设备ID。
基于上述别名维度和设备维度,在一种示例性实施例中,第一推送维度为别名维度,第一对象标识为第一别名,则第一信息表为别名-设备信息表。基于此,确定模块53具体用于:从别名-设备信息表中获取第一别名对应的各设备ID,将以第一别名登录并且安装在第一别名对应的各设备ID所标识的终端设备上的业务客户端,作为待推送业务客户端。
基于上述别名维度和设备维度,在一种示例性实施例中,第一推送维度为设备维度,第一对象标识为第一设备ID,则第一信息表为设备-别名信息表。基于此,确定模块53具体用于:从设备-别名信息表中获取第一设备ID对应的各别名,将以第一设备ID对应的各别名登录并且安装在第一设备ID所标识的终端设备上的业务客户端,作为待推送业务客户端。
以上描述了信息推送装置的内部功能和结构,如图5b所示,实际中,该信息推送装置可实现为推送服务器,包括:存储器500、处理器501以及通信组件502。
通信组件502,用于接收业务服务器发送的推送请求,该推送请求包括第一推送维度下的第一对象标识。
存储器500,用于存储程序以及以不同推送维度作为存储主键的至少两张信息表。
处理器501,耦合至存储器500和通信组件502,用于执行存储器500中的程序以用于:
从至少两张信息表中,选择以第一推送维度作为存储主键的第一信息表,第一信息表存储有各业务客户端在不同推送维度下的对象标识之间的绑定关系;
根据第一对象标识以及第一信息表中与第一对象标识存在绑定关系的其它推送维度下的对象标识,确定待推送业务客户端;
通过通信组件502向待推送业务客户端推送业务服务器需要推送的消息。
相应地,通信组件502,还用于向待推送业务客户端推送业务服务器需要推送的消息。
在一些示例性实施例中,通信组件502,还用于接收各业务客户端中第一业务客户端发送的绑定请求,绑定请求包括第一业务客户端在不同推送维度下的对象标识。相应地,处理器501,还用于将第一业务客户端在不同推送维度下的对象标识分别存储到至少两张信息表中。
在一些示例性实施例中,通信组件502,还用于接收至少一个业务客户端中第二业务客户端发送的解绑定请求,解绑定请求包括第二业务客户端在待解绑定的推送维度下的对象标识。相应地,处理器501,还用于从至少两张信息表中将第二业务客户端在待解绑定的推送维度下的对象标识的绑定关系删除。
在一些示例性实施例中,不同推送维度包括别名维度和设备维度;至少两张信息表包括以设备维度作为存储主键的设备-别名信息表以及以别名维度作为存储主键的别名-设备信息表。
基于上述别名维度和设备维度,在一种示例性实施例中,绑定请求包括第一业务客户端的别名以及标识第一业务客户端所在终端设备的设备ID。基于此,处理器501具体用于:将第一业务客户端的别名存储在别名-设备信息表中存储主键所在的信息列中,并将第一业务客户端的设备ID存储在第一业务客户端的别名对应的属性列中;将第一业务客户端的设备ID在设备-别名信息表中存储主键所在的信息列中,并将第一业务客户端的别名存储在第一业务客户端的设备ID对应的属性列中。
基于上述别名维度和设备维度,在一种示例性实施例中,处理器501具体用于:
若解绑定请求包括第二业务客户端的别名,从别名-设备信息表中删除第二业务客户端的别名以及对应的各设备ID,并从设备-别名信息表中删除第二业务客户端的别名;或者
若解绑定请求包括第二业务客户端的设备ID,从设备-别名信息表中删除第二业务客户端的设备ID以及对应的各别名,并从别名-设备信息表中删除第二业务客户端的设备ID;或者
若解绑定请求包括第二业务客户端的别名和设备ID,从设备-别名信息表中删除第二业务客户端的设备ID对应的第二业务客户端的别名,并从别名-设备信息表中删除第二业务客户端的别名对应的第二业务客户端的设备ID。
基于上述别名维度和设备维度,在一种示例性实施例中,第一推送维度为别名维度,第一对象标识为第一别名,则第一信息表为别名-设备信息表。基于此,处理器501具体用于:从别名-设备信息表中获取第一别名对应的各设备ID,将以第一别名登录并且安装在第一别名对应的各设备ID所标识的终端设备上的业务客户端,作为待推送业务客户端。
基于上述别名维度和设备维度,在一种示例性实施例中,第一推送维度为设备维度,第一对象标识为第一设备ID,则第一信息表为设备-别名信息表。基于此,处理器501具体用于:从设备-别名信息表中获取第一设备ID对应的各别名,将以第一设备ID对应的各别名登录并且安装在第一设备ID所标识的终端设备上的业务客户端,作为待推送业务客户端。
进一步,如图5b所示,推送服务器还包括:显示器503、电源组件504以及音频组件505等其它组件。图5b中仅示意性给出部分组件,并不意味着推送服务器只包括图5b所示组件。
本实施例提供的推送服务器,在推送过程中,根据推送需求从以不同推送维度作为存储主键的至少两张信息表中选择符合推送需求的信息表,并基于该信息表中记载的各业务客户端在不同推送维度下的对象标识之间的绑定关系,确定符合推送需求的待推送业务客户端,进而向待推送业务客户端推送业务服务器需要推送的消息,不仅可以满足多样化的推送需求,而有利于提高推送效率。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被计算机执行时能够实现上述各实施例中与推送服务器相关的方法步骤或功能。
图6a为本申请又一示例性实施例提供的信息管理装置的结构示意图。如图6a所示,该装置包括:接收模块61和存储模块62。
接收模块61,用于接收第一业务客户端发送的绑定请求,绑定请求包括第一业务客户端在不同推送维度下的对象标识。
存储模块62,用于将第一业务客户端在不同推送维度下的对象标识分别存储到以不同推送维度作为存储主键的至少两张信息表中,至少两张信息表分别用于存储各业务客户端在不同推送维度下的对象标识之间的绑定关系。
在一些示例性实施例中,接收模块61,还用于接收各业务客户端中第二业务客户端发送的解绑定请求,解绑定请求包括第二业务客户端在待解绑定的推送维度下的对象标识。相应地,该信息管理装置还包括:删除模块。删除模块,用于从至少两张信息表中将第二业务客户端在待解绑定的推送维度下的对象标识的绑定关系删除。
以上描述了信息管理装置的内部功能和结构,如图6b所示,实际中,该信息管理装置可实现为推送服务器,包括:存储器600、处理器601以及通信组件602。
通信组件602,用于接收第一业务客户端发送的绑定请求,绑定请求包括第一业务客户端在不同推送维度下的对象标识。
存储器600,用于存储程序以及以不同推送维度作为存储主键的至少两张信息表。
处理器601,耦合至存储器600和通信组件602,用于执行存储器600中的程序以用于:
将第一业务客户端在不同推送维度下的对象标识分别存储到以不同推送维度作为存储主键的至少两张信息表中,至少两张信息表分别用于存储各业务客户端在不同推送维度下的对象标识之间的绑定关系。
在一些示例性实施例中,通信组件602,还用于接收各业务客户端中第二业务客户端发送的解绑定请求,解绑定请求包括第二业务客户端在待解绑定的推送维度下的对象标识。相应地,处理器601,还用于从至少两张信息表中将第二业务客户端在待解绑定的推送维度下的对象标识的绑定关系删除。
进一步,如图6b所示,推送服务器还包括:显示器603、电源组件604以及音频组件605等其它组件。图6b中仅示意性给出部分组件,并不意味着推送服务器只包括图6b所示组件。
本实施例的推送服务器,采用不同信息表,分别以不同推送维度作为存储主键来存储业务客户端在不同推送维度下的对象标识之间的绑定关系,有利于提高信息表的使用性能,提高信息表的查询效率,为提高推送效率提供了条件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被计算机执行时能够实现上述各实施例中与推送服务器相关的方法步骤或功能。
在上述图5b和图6b中的通信组件,可被配置为便于通信组件所属设备和其他设备之间有线或无线方式的通信。通信组件所属设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在上述图5b和图6b中的显示器,可以包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
在上述图5b和图6b中的电源组件,为电源组件所属设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所属设备生成、管理和分配电力相关联的组件。
在上述图5b和图6b中的音频组件,被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所属设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (15)
1.一种信息推送方法,其特征在于,包括:
接收业务服务器发送的推送请求,所述推送请求包括第一推送维度下的第一对象标识;
从以不同推送维度作为存储主键的至少两张信息表中,选择以所述第一推送维度作为存储主键的第一信息表,所述第一信息表存储有各业务客户端在不同推送维度下的对象标识之间的绑定关系;
根据所述第一对象标识以及所述第一信息表中与所述第一对象标识存在绑定关系的其它推送维度下的对象标识,确定待推送业务客户端;
向所述待推送业务客户端推送所述业务服务器需要推送的消息;其中,所述至少两张信息表中存储的内容相同,都是各业务客户端在不同推送维度下的对象标识之间的绑定关系,不同信息表中的存储主键不同,每张信息表分别以一个推送维度作为存储主键。
2.根据权利要求1所述的方法,其特征在于,在接收业务服务器发送的推送请求之前,所述方法还包括:
接收所述各业务客户端中第一业务客户端发送的绑定请求,所述绑定请求包括所述第一业务客户端在不同推送维度下的对象标识;
将所述第一业务客户端在不同推送维度下的对象标识分别存储到所述至少两张信息表中。
3.根据权利要求2所述的方法,其特征在于,还包括:
接收所述各业务客户端中第二业务客户端发送的解绑定请求,所述解绑定请求包括所述第二业务客户端在待解绑定的推送维度下的对象标识;
从所述至少两张信息表中将所述第二业务客户端在所述待解绑定的推送维度下的对象标识的绑定关系删除。
4.根据权利要求3所述的方法,其特征在于,所述不同推送维度包括别名维度和设备维度;所述至少两张信息表包括以设备维度作为存储主键的设备-别名信息表以及以别名维度作为存储主键的别名-设备信息表。
5.根据权利要求4所述的方法,其特征在于,所述绑定请求包括所述第一业务客户端的别名以及标识所述第一业务客户端所在终端设备的设备ID;
所述将所述第一业务客户端在不同推送维度下的对象标识分别存储到所述至少两张信息表中,包括:
将所述第一业务客户端的别名存储在所述别名-设备信息表中存储主键所在的信息列中,并将所述第一业务客户端的设备ID存储在所述第一业务客户端的别名对应的属性列中;
将所述第一业务客户端的设备ID在所述设备-别名信息表中存储主键所在的信息列中,并将所述第一业务客户端的别名存储在所述第一业务客户端的设备ID对应的属性列中。
6.根据权利要求4所述的方法,其特征在于,所述从所述至少两张信息表中将所述第二业务客户端在所述待解绑定的推送维度下的对象标识的绑定关系删除,包括:
若所述解绑定请求包括所述第二业务客户端的别名,从所述别名-设备信息表中删除所述第二业务客户端的别名以及对应的各设备ID,并从所述设备-别名信息表中删除所述第二业务客户端的别名;或者
若所述解绑定请求包括所述第二业务客户端的设备ID,从所述设备-别名信息表中删除所述第二业务客户端的设备ID以及对应的各别名,并从所述别名-设备信息表中删除所述第二业务客户端的设备ID;或者
若所述解绑定请求包括所述第二业务客户端的别名和设备ID,从所述设备-别名信息表中删除所述第二业务客户端的设备ID对应的所述第二业务客户端的别名,并从所述别名-设备信息表中删除所述第二业务客户端的别名对应的所述第二业务客户端的设备ID。
7.根据权利要求4-6任一项所述的方法,其特征在于,所述第一推送维度为别名维度,所述第一对象标识为第一别名,则所述第一信息表为所述别名-设备信息表;
所述根据所述第一对象标识以及所述第一信息表中与所述第一对象标识存在绑定关系的其它推送维度下的对象标识,确定待推送业务客户端,包括:
从所述别名-设备信息表中获取所述第一别名对应的各设备ID,将以所述第一别名登录并且安装在所述第一别名对应的各设备ID所标识的终端设备上的业务客户端,作为待推送业务客户端。
8.根据权利要求4-6任一项所述的方法,其特征在于,所述第一推送维度为设备维度,所述第一对象标识为第一设备ID,则所述第一信息表为所述设备-别名信息表;
所述根据所述第一对象标识以及所述第一信息表中与所述第一对象标识存在绑定关系的其它推送维度下的对象标识,确定待推送业务客户端,包括:
从所述设备-别名信息表中获取所述第一设备ID对应的各别名,将以所述第一设备ID对应的各别名登录并且安装在所述第一设备ID所标识的终端设备上的业务客户端,作为待推送业务客户端。
9.一种信息管理方法,其特征在于,包括:
接收第一业务客户端发送的绑定请求,所述绑定请求包括所述第一业务客户端在不同推送维度下的对象标识;
将所述第一业务客户端在不同推送维度下的对象标识分别存储到以不同推送维度作为存储主键的至少两张信息表中,所述至少两张信息表中存储的内容相同,都是各业务客户端在不同推送维度下的对象标识之间的绑定关系,不同信息表中的存储主键不同,每张信息表分别以一个推送维度作为存储主键。
10.根据权利要求9所述的方法,其特征在于,还包括:
接收所述各业务客户端中第二业务客户端发送的解绑定请求,所述解绑定请求包括所述第二业务客户端在待解绑定的推送维度下的对象标识;
从所述至少两张信息表中将所述第二业务客户端在所述待解绑定的推送维度下的对象标识的绑定关系删除。
11.一种推送服务器,其特征在于,包括:通信组件、存储器和处理器;
所述通信组件,用于接收业务服务器发送的推送请求,所述推送请求包括第一推送维度下的第一对象标识;
所述存储器,用于存储程序以及以不同推送维度作为存储主键的至少两张信息表;
所述处理器耦合至所述存储器和所述通信组件,用于执行所述程序以用于:
从所述至少两张信息表中,选择以所述第一推送维度作为存储主键的第一信息表,所述第一信息表存储有各业务客户端在不同推送维度下的对象标识之间的绑定关系;
根据所述第一对象标识以及所述第一信息表中与所述第一对象标识存在绑定关系的其它推送维度下的对象标识,确定待推送业务客户端;
通过所述通信组件向所述待推送业务客户端推送所述业务服务器需要推送的消息;
所述通信组件,还用于向所述待推送业务客户端推送所述业务服务器需要推送的消息;其中,所述至少两张信息表中存储的内容相同,都是各业务客户端在不同推送维度下的对象标识之间的绑定关系,不同信息表中的存储主键不同,每张信息表分别以一个推送维度作为存储主键。
12.根据权利要求11所述的推送服务器,其特征在于,
所述通信组件,还用于接收所述各业务客户端中第一业务客户端发送的绑定请求,所述绑定请求包括所述第一业务客户端在不同推送维度下的对象标识;
所述处理器,还用于将所述第一业务客户端在不同推送维度下的对象标识分别存储到所述至少两张信息表中。
13.一种推送服务器,其特征在于,包括:通信组件、存储器和处理器;
所述通信组件,用于接收第一业务客户端发送的绑定请求,所述绑定请求包括所述第一业务客户端在不同推送维度下的对象标识;
所述存储器,用于存储程序以及以不同推送维度作为存储主键的至少两张信息表,所述至少两张信息表中存储的内容相同,都是各业务客户端在不同推送维度下的对象标识之间的绑定关系;
所述处理器耦合至所述存储器和所述通信组件,用于执行所述程序,以用于:
将所述第一业务客户端在不同推送维度下的对象标识分别存储到所述至少两张信息表中,不同信息表中的存储主键不同,每张信息表分别以一个推送维度作为存储主键。
14.根据权利要求13所述的推送服务器,其特征在于,
所述通信组件,还用于接收所述各业务客户端中第二业务客户端发送的解绑定请求,所述解绑定请求包括所述第二业务客户端在待解绑定的推送维度下的对象标识;
所述处理器,还用于从所述至少两张信息表中将所述第二业务客户端在所述待解绑定的推送维度下的对象标识的绑定关系删除。
15.一种信息推送系统,其特征在于,包括:业务服务器、推送服务器以及至少一个业务客户端;
所述业务服务器,用于向所述推送服务器发送推送请求,所述推送请求包括第一推送维度下的第一对象标识;
所述推送服务器,用于接收所述推送请求,从以不同推送维度作为存储主键的至少两张信息表中,选择以所述第一推送维度作为存储主键的第一信息表,根据所述第一对象标识以及所述第一信息表中与所述第一对象标识存在绑定关系的其它推送维度下的对象标识,确定待推送业务客户端,并向所述待推送业务客户端推送所述业务服务器需要推送的消息;所述第一信息表存储有所述各业务客户端在不同推送维度下的对象标识之间的绑定关系;
所述待推送业务客户端,用于接收所述推送服务器推送的所述消息;其中,所述至少两张信息表中存储的内容相同,都是各业务客户端在不同推送维度下的对象标识之间的绑定关系,不同信息表中的存储主键不同,每张信息表分别以一个推送维度作为存储主键。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711337036.9A CN109962931B (zh) | 2017-12-14 | 2017-12-14 | 信息推送方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711337036.9A CN109962931B (zh) | 2017-12-14 | 2017-12-14 | 信息推送方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109962931A CN109962931A (zh) | 2019-07-02 |
CN109962931B true CN109962931B (zh) | 2022-01-11 |
Family
ID=67017830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711337036.9A Active CN109962931B (zh) | 2017-12-14 | 2017-12-14 | 信息推送方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109962931B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580398A (zh) * | 2014-12-22 | 2015-04-29 | 北京像素软件科技股份有限公司 | 一种网络内容推送方法、装置和网络内容展示客户端 |
CN107016027A (zh) * | 2016-12-08 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 实现业务信息快速搜索的方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6814293B2 (en) * | 1997-02-10 | 2004-11-09 | Symbol Technologies, Inc. | Arrangement for and method of establishing a logical relationship among peripherals in a wireless local area network |
US8196184B2 (en) * | 2007-02-16 | 2012-06-05 | Microsoft Corporation | Efficient data structures for multi-dimensional security |
CN106326248B (zh) * | 2015-06-23 | 2019-08-27 | 阿里巴巴集团控股有限公司 | 数据库数据的存储方法和装置 |
CN105550314A (zh) * | 2015-12-14 | 2016-05-04 | Tcl集团股份有限公司 | 基于联合主键的数据统计方法、装置及系统 |
-
2017
- 2017-12-14 CN CN201711337036.9A patent/CN109962931B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580398A (zh) * | 2014-12-22 | 2015-04-29 | 北京像素软件科技股份有限公司 | 一种网络内容推送方法、装置和网络内容展示客户端 |
CN107016027A (zh) * | 2016-12-08 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 实现业务信息快速搜索的方法和装置 |
Non-Patent Citations (3)
Title |
---|
Android集成阿里云消息推送的方法步骤;风吹裤裤的海量的海量;《CSDN https://blog.csdn.net/qq_16711967/article/details/64121864》;20170320;全文 * |
一分钟了解阿里云产品:移动推送概述;weixin_33785972;《CSDN https://blog.csdn.net/weixin_33785972/article/details/90688369》;20160228;全文 * |
阿里云-移动推送集成及要点;秦子帅;《CSDN https://blog.csdn.net/qq_34908107/article/details/77890989》;20170908;正文第1页、第4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109962931A (zh) | 2019-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105787077B (zh) | 数据同步方法和装置 | |
US9754326B2 (en) | Aggregate provider for social activity feeds and contact information | |
US20150304265A1 (en) | Broadcast notification system | |
US20140053074A1 (en) | Method and apparatus for generating and utilizing a cloud service-based content shortcut object | |
CN107181755B (zh) | 一种办公平台的身份识别方法、装置及系统 | |
CN102769640B (zh) | 用户信息的更新方法、服务器以及系统 | |
CN104756080A (zh) | 扩展主机设备的功能 | |
CN104158889A (zh) | 名片信息查询方法和云服务器 | |
CN113392158A (zh) | 业务数据处理方法、装置及数据中台 | |
CN111698675B (zh) | 数据处理方法、装置及计算机可读存储介质 | |
CN104468469A (zh) | 使用移动终端进行排号的方法及系统 | |
CN105099894A (zh) | 消息推送方法、装置及系统 | |
CN103873519A (zh) | 一种数据同步方法、客户端、服务器、终端和系统 | |
EP2916495A1 (en) | Information processing system, an information processing apparatus and a medium storing an information processing program | |
CN105453072A (zh) | 以用户为中心的数据维护 | |
CN110647827A (zh) | 评论信息处理方法、装置以及电子设备、存储介质 | |
CN109391658B (zh) | 一种账号数据同步方法及其设备、存储介质、终端 | |
US9577967B2 (en) | Method and system for managing an informational site using a social networking application | |
CN112579877B (zh) | 信源系统的控制方法、装置、存储介质和设备 | |
CN109962931B (zh) | 信息推送方法、装置及系统 | |
CN115982133A (zh) | 数据处理方法及装置 | |
CN105681262A (zh) | 一种交互消息分配方法及系统 | |
KR102404144B1 (ko) | 양방향 통신 관리 방법 및 그를 이용한 관리 서버 | |
CN111104575B (zh) | 数据抓取方法、装置及电子设备 | |
CN110166505B (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 |