CN109617792A - 即时通讯***及广播消息分发方法 - Google Patents
即时通讯***及广播消息分发方法 Download PDFInfo
- Publication number
- CN109617792A CN109617792A CN201910047756.4A CN201910047756A CN109617792A CN 109617792 A CN109617792 A CN 109617792A CN 201910047756 A CN201910047756 A CN 201910047756A CN 109617792 A CN109617792 A CN 109617792A
- Authority
- CN
- China
- Prior art keywords
- message
- broadcast
- user
- broadcast message
- service node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/806—Broadcast or multicast traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/827—Aggregation of resource allocation or reservation requests
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种即时通讯***及广播消息分发方法,涉及即时通讯的技术领域,该***包括:广播服务节点,以及与广播服务节点通信连接的多个消息服务节点;广播服务节点用于接收广播消息的分发业务请求,对用户标识进行聚合分组,以生成每个消息服务节点对应的用户聚合任务;以及,向每个消息服务节点发送广播消息指令;消息服务节点用于接收广播消息指令,向对应的用户聚合任务包括的多个用户标识发送广播消息。本发明提供的即时通讯***及广播消息分发方法,极大的减少网络传输数据量,以及网络的交互次数,有效避免了网络拥堵的情况,进而提高了即时通讯的效率和用户的体验度。
Description
技术领域
本发明涉及即时通讯的技术领域,尤其是涉及一种即时通讯***及广播消息分发方法。
背景技术
即时通讯也可以称为实时通讯,允许两个或多个用户使用网络实时传递文字消息、文件、语音或者视频信息等,大部分的即时通讯服务都可以显示联络人名单,联络人是否在线上,以及能否与联络人交谈等等,能够建立一种适于用户交流的通讯平台。
目前,现有的即时通讯***多采用扫描全网用户数据表,以串行或并行的方式针对每个用户依次组装广播消息,并对广播消息进行分发的方案,在分发时产生的消息总数量与用户总数量相同,并且,消息内容通常是完整的广播消息内容,使得在广播消息分发过程中持续占用大量的分发服务CPU和内存资源,同时,也会长时间高负荷占用内部网络资源,造成网络压力,严重的可引起内网网络拥堵的情况,降低了即时通讯的效率,以及用户的体验度。
发明内容
有鉴于此,本发明的目的在于提供一种即时通讯***及广播消息分发方法,以缓解上述用户体验度较低的技术问题。
第一方面,本发明实施例提供了一种即时通讯***,包括:广播服务节点,以及与广播服务节点通信连接的多个消息服务节点;广播服务节点用于接收广播消息的分发业务请求,根据当前连接的消息服务节点对预先存储的用户列表包含的用户标识进行聚合分组,以生成每个消息服务节点对应的用户聚合任务,其中,用户聚合任务包括多个用户标识;以及,向每个消息服务节点发送广播消息指令,该广播消息指令包括用户聚合任务,以指示消息服务节点向用户聚合任务包括的多个用户标识提供广播消息分发服务;消息服务节点用于接收广播消息指令,向对应的用户聚合任务包括的多个用户标识发送广播消息。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,上述***还包括与广播服务节点和消息服务节点连接的消息数据库;广播消息的分发业务请求包括广播消息的内容;上述广播服务节点还用于在接收到广播消息的分发业务请求后,生成广播消息的标识,并将广播消息的标识与广播消息的内容关联存储至消息数据库;以及,向消息服务节点发送广播消息的缓存指令;其中,缓存指令包括广播消息的标识,以及广播消息的内容;消息服务节点还用于接收缓存指令,对广播消息的标识,以及广播消息的内容进行缓存。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,上述***还包括与广播服务节点连接的用户数据库;预先存储的用户列表保存在用户数据库中。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,上述广播服务节点根据当前连接的消息服务节点对预先存储的用户列表包含的用户标识进行聚合分组的步骤包括:在接收到广播消息的分发业务请求后,采用分页方式从用户数据库中查询用户列表,生成每次分页查询的用户集合;采用并行处理方式对每个用户集合包含的用户标识进行聚合分组,以生成每个消息服务节点对应的用户聚合任务。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,上述广播服务节点对每个用户集合包含的用户标识进行聚合分组的步骤包括:为每个用户标识匹配对应的消息服务节点,生成用户标识与消息服务节点的对应关系;其中,对应关系包括用户标识,以及为用户标识对应的用户提供广播消息分发服务的消息服务节点的标识,根据该对应关系,将相同的消息服务节点对应的用户标识聚合成消息服务节点对应的用户聚合任务。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,上述消息服务节点向对应的用户聚合任务中包括的多个用户标识发送广播消息的步骤包括:消息服务节点遍历用户聚合任务中的每个用户标识;判断用户标识对应的用户状态是否为在线状态;如果是,向在线状态的用户标识发送广播消息;如果否,缓存广播消息。
结合第一方面的第五种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,上述消息服务节点还用于:如果监测到离线状态的用户标识的上线消息,获取用户标识对应的历史消息拉取时间点,以历史消息拉取时间点为起点,为用户标识对应的用户拉取广播消息;将拉取的广播消息组织为离线消息拉取结果,并将离线消息拉取结果发送至用户标识对应的用户。
第二方面,本发明实施例还提供一种广播消息分发方法,该方法应用于上述第一方面的即时通讯***,该方法包括:广播服务节点接收广播消息的分发业务请求,根据当前连接的消息服务节点对预先存储的用户列表包含的用户标识进行聚合分组,以生成每个消息服务节点对应的用户聚合任务,其中,用户聚合任务包括多个用户标识;以及,向每个消息服务节点发送广播消息指令,该广播消息指令包括用户聚合任务,以指示消息服务节点向用户聚合任务包括的多个用户标识提供广播消息分发服务;消息服务节点接收广播消息指令,向对应的用户聚合任务包括的多个用户标识发送广播消息。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,上述即时通讯***还包括与广播服务节点连接的消息数据库,广播消息的分发业务请求包括广播消息的内容;上述方法还包括:广播服务节点在接收到广播消息的分发业务请求后,生成广播消息的标识,并将广播消息的标识与广播消息的内容关联存储至消息数据库;以及,向消息服务节点发送广播消息的缓存指令;其中,缓存指令包括广播消息的标识,以及广播消息的内容;消息服务节点还用于接收缓存指令,对广播消息的标识,以及广播消息的内容进行缓存。
第三方面,本发明实施例还提供一种计算机存储介质,用于存储计算机程序指令,当计算机执行所述计算机程序指令时,执行如第二方面所述的方法。
本发明实施例带来了以下有益效果:
本发明实施例提供的一种即时通讯***及广播消息分发方法,能够通过广播服务节点接收广播消息的分发业务请求,并根据当前连接的消息服务节点对预先存储的用户列表包含的用户标识进行聚合分组,生成每个消息服务节点对应的用户聚合任务,进而向每个消息服务节点发送包括用户聚合任务的广播消息指令,以使消息服务节点向对应的用户聚合任务包括的多个用户标识发送广播消息,通过将用户进行聚合分组,再分发广播消息的方式,将广播消息分发过程中对广播消息内容进行网络传输次数由用户总数降低到消息服务节点数,极大的减少网络传输数据量,以及网络的交互次数,降低了网络资源的占用率,有效避免了网络拥堵的情况,进而提高了即时通讯的效率和用户的体验度。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种即时通讯***的结构示意图;
图2为本发明实施例提供的另一种即时通讯***的结构示意图;
图3为本发明实施例提供的一种即时通讯***的交互示意图;
图4为本发明实施例提供的一种广播消息分发方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前的即时通讯***多采用全网用户数据表的方式对广播消息进行分发,导致在广播消息分发时产生的消息总数量与用户总数量相同,占用了较多网络资源,在一定程度上降低了即时通讯的效率,以及用户的体验度。基于此,本发明实施例提供的一种即时通讯***及广播消息分发方法,可以有效缓解上述广播消息分发过程占用较多网络资源的问题,以提高即时通讯的效率,以及用户的体验度。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种即时通讯***进行详细介绍。
实施例一:
本发明实施例提供了一种即时通讯***,如图1所示的一种即时通讯***的结构示意图,包括:广播服务节点100,以及与该广播服务节点100通信连接的多个消息服务节点102。
其中,本发明实施例中的广播服务节点通常是即时通讯***中接收用户广播消息分发请求的服务节点,并对广播消息的分发认为进行触发等。
进一步,本发明实施例中的消息服务节点通常指即时通讯***中与用户对接的服务节点,可以处理用户侧的上下行消息。
在实际使用时,上述即时通讯***可以包括多个广播服务节点,每个广播服务节点都可以连接多个消息服务解点,为了便于说明,如1中示出的是一个广播服务节点与多个消息服务节点进行通讯的示意图,应当理解,即时通讯***的广播服务节点,以及每个广播服务节点连接的消息服务节点的数量可以根据实际使用情况进行设置,本发明实施例对此不进行限制。
具体地,如图1所示,本发明实施例中的广播服务节点100用于接收广播消息的分发业务请求,根据当前连接的消息服务节点对预先存储的用户列表包含的用户标识进行聚合分组,以生成每个消息服务节点对应的用户聚合任务,其中,用户聚合任务包括多个用户标识;以及,
向每个消息服务节点发送广播消息指令,通常,该广播消息指令包括用户聚合任务,以指示消息服务节点向用户聚合任务包括的多个用户标识提供广播消息分发服务;
消息服务节点用于接收上述广播消息指令,向对应的用户聚合任务包括的多个用户标识发送广播消息。
本发明实施例提供的一种即时通讯***,能够通过广播服务节点接收广播消息的分发业务请求,并根据当前连接的消息服务节点对预先存储的用户列表包含的用户标识进行聚合分组,生成每个消息服务节点对应的用户聚合任务,进而向每个消息服务节点发送包括用户聚合任务的广播消息指令,以使消息服务节点向对应的用户聚合任务包括的多个用户标识发送广播消息,通过将用户进行聚合分组,再分发广播消息的方式,将广播消息分发过程中对广播消息内容进行网络传输次数由用户总数降低到消息服务节点数,极大的减少网络传输数据量,以及网络的交互次数,降低了网络资源的占用率,有效避免了网络拥堵的情况,进而提高了即时通讯的效率和用户的体验度。
具体实现时,上述广播服务节点接收的广播消息的分发业务请求可以是当前即时通讯***中的管理员登录广播服务节点后发送的分发业务请求,也可以是即时通讯***中全用户中的任意一个用户发送的即时消息,广播服务节点接收到该分发业务请求后,可以进一步触发后续的流程。
在实际使用时,上述分发业务请求通常包括广播消息的内容,因此,上述广播服务节点接收到分发业务请求后,可以对包含的广播消息的内容进行存储,以便于所连接的多个消息服务节点对当前的广播消息进行分发。
因此,本发明实施例提供的即时通讯***通常还包括消息数据库,以存储上述广播消息的内容,以及用户消息记录的存储服务。
具体地,如图2所示的另一种即时通讯***的结构示意图,除图1所示的结构外,上述即时通讯***还包括与广播服务节点100和消息服务节点102连接的消息数据库104;上述广播消息的分发业务请求包括广播消息的内容;
因此,上述广播服务节点100还用于在接收到广播消息的分发业务请求后,生成广播消息的标识,并将该广播消息的标识与广播消息的内容关联存储至消息数据库;以及,
向消息服务节点102发送广播消息的缓存指令;其中,该缓存指令包括广播消息的标识,以及广播消息的内容;
上述消息服务节点102还用于接收该缓存指令,对广播消息的标识,以及广播消息的内容进行缓存。
具体地,上述广播消息的内容可以存储在上述消息数据库中,并且,上述广播消息的标识,通常是该条广播消息的编号,例如,该编号可以包括发送该广播消息的用户对应的用户标识,以及文件编号等等,以便于即时通讯***对该条广播消息进行保存和记录。具体地,可以以广播消息ID来表示是上述广播消息的标识。该广播消息ID的具体编号形式可以根据实际使用情况进行设置,本发明实施例对此不进行限制。
进一步,上述消息服务节点接收到缓存指令后,可以对广播消息ID以及广播消息的内容做内存级别字典映射,将广播消息的内容以字典形式进行存储。
进一步,上述***还可以包括与广播服务节点102连接的用户数据库106;上述预先存储的用户列表保存在用户数据库中,以便于广播服务节点在接收到广播消息的分发业务请求后,从该用户数据库中查找预先存储的用户列表。
具体地,上述用户标识也可以称为用户ID号,以便于在即时通讯***内唯一标志一个用户,例如,以上述即时通讯***的用户为某公司员工为例,上述用户列表可以是该公司的员工信息表,每个用户ID号,可以是员工的手机号、工位号或者身份证号,进一步,还可以是员工的指纹、面部信息等等,可以唯一标识该用户的信息,以避免上述用户列表中出现重复的用户标识。
在实际使用时,用户列表中包含的用户标识的数量通常较多,通常都会大于消息服务节点的数量,因此,为了便于消息服务节点对广播消息进行分发,通常在广播服务节点可以对用户列表中包含的数据标识进行聚合分组。具体地,广播服务节点可以根据消息服务节点的数量对用户标识进行聚合分组,例如,同样以公司为例,可以按部门对用户标识进行聚合,或者按照入职时间对用户标识进行聚合等等,将用户标识分成若干组,具体的分组的数量通常与消息服务节点的数量一致,以便于明确每个消息服务节点为哪一个用户标识的聚合分组提供广播消息的分发服务。
进一步,考虑到用户标识的数量比较多,因此,广播服务节点在获取用户列表时可以采用分页方式从用户数据库中查询用户列表,基于此,上述广播服务节点根据当前连接的消息服务节点对预先存储的用户列表包含的用户标识进行聚合分组的步骤包括:
在接收到广播消息的分发业务请求后,采用分页方式从用户数据库中查询用户列表,生成每次分页查询的用户集合;
采用并行处理方式对每个用户集合包含的用户标识进行聚合分组,以生成每个消息服务节点对应的用户聚合任务。
具体地,可以对每次分页查询时可以查询到用户标识的数量进行设置,并对每次分页查询的结果进行保存,例如,将分页查询的结果记录为用户集合C,则可以生成每次分页查询的用户集合C1,C2,…Cn,进一步,集合{C1,C2,…Cn}则可以表示全部用户。然后在采用并行处理方式对每个用户集合C1,C2,…Cn包含的用户标识进行聚合分组。
在实际使用时,上述广播服务节点对每个用户集合包含的用户标识进行聚合分组的步骤可以包括:
为每个用户标识匹配对应的消息服务节点,生成用户标识与消息服务节点的对应关系;其中,该对应关系包括用户标识,以及为该用户标识对应的用户提供广播消息分发服务的消息服务节点的标识,然后再根据该对应关系,将相同的消息服务节点对应的用户标识聚合成消息服务节点对应的用户聚合任务。当广播服务节点向每个消息服务节点发送广播消息指令时,可以将该用户聚合任务与广播消息指令一通发送至消息服务节点,以使消息服务节点确定需要为哪一个,或者哪一组用户标识提供广播消息分法服务。
具体地,针对上述每个分页查询结果的用户集合C,均可以产生一个广播消息用户聚合任务P,如果总共产生广播消息用户聚合任务的数量为n个,则全用户广播任务聚合为{P1,P2…Pn}。
在为每个用户标识匹配对应的消息服务节点时,可以以每个分页查询结果的用户集合C为一个用户聚合任务P,对用户集合C中包含的用户标识匹配对应的消息服务节点,具体地,可以对该用户集合C做遍历,依据用户ID计算为该用户提供服务的消息服务节点ID,并将结果以消息服务节点ID作为键,用户ID作为值的方式存储为字典集合,以生成用户标识与消息服务节点的对应关系,进而实现对用户集合包含的用户标识进行聚合分组。当对当前用户集合完成遍历后,可以继续对下一个用户集合进行遍历,直至遍历完全部用户,完成为用户列表中包含的所有用户标识进行聚合分组的过程。
为了便于理解,表1示出了一种聚合分组的结果,如表1所示:
表1:
键 | 值 |
消息服务节点-1 | [用户A<sub>1</sub>,B<sub>1</sub>…N<sub>1</sub>] |
… | … |
消息服务节点-n | [用户A<sub>n</sub>,B<sub>n</sub>…N<sub>n</sub>] |
其中,表1示出的是其中一个用户集合的聚合分组的结果,如果广播服务节点通信连接的多个消息服务节点的数量为n个,则每个消息服务节点ID可以以“消息服务节点-序号”的形式来呈现,并作为上述对应关系的键,同时,表1中消息服务节点-1对应用户A1,B1…N1表示的是当前用户集合中用户标识为A1,B1…N1的用户由消息服务节点-1提供广播消息分发的服务。
同理,针对每次分页查询结果的用户集合C广播服务节点都可以得出上述表1形式的对应关系,并使用异步模型向每个消息服务节点发送广播消息指令,以触发上述广播消息的分发任务。上述对每个用户集合进行聚合分组的方式,可以将广播消息的网络传输次数由用户总数降低至消息服务节点数,极大地减少了网络传输的数据量,有效避免了出现网络拥堵的情况。
进一步,每个消息服务节点在接收到广播消息指令后,可以向广播服务节点返回分发业务请求的代收应答,以回应通知广播服务节点,并向在线状态的用户标识发送上述广播消息。
具体地,上述消息服务节点向对应的用户聚合任务中包括的多个用户标识发送广播消息的步骤包括:
消息服务节点遍历用户聚合任务中的每个用户标识;判断用户标识对应的用户状态是否为在线状态;如果是,向在线状态的用户标识发送广播消息;如果否,缓存广播消息。
具体地,上述消息服务节点的遍历过程,可以针对当前分页查询结果的用户集合中的每个用户标识进行遍历,并判断每个用户标识对应的用户为在线状态还是离线状态,如果用户处于在线状态,可以将缓存的广播消息的内容发送至该用户标识,同时,还可以清除本次广播消息分发服务过程中,该用户标识对应的缓存数据。
进一步,如果消息服务节点对广播消息ID以及广播消息的内容做内存级别字典映射,则可以使用广播消息ID从内存映射中查询该广播消息ID对应的广播消息的内容,然后给用户发送在线广播消息。
如果用户处于离线状态,则跳过当前用户,继续遍历后面的用户,执行对在线用户分发广播消息的过程。
进一步,为了避免离线用户丢失该广播消息,对于离线用户,上述消息服务节可以先对广播消息进行缓存,以便于用户上线时,向该用户分发广播消息,因此,上述消息服务节点还用于:如果监测到离线状态的用户标识的上线消息,获取用户标识对应的历史消息拉取时间点,以历史消息拉取时间点为起点,为用户标识对应的用户拉取广播消息;将拉取的广播消息组织为离线消息拉取结果,并将该离线消息拉取结果发送至用户标识对应的用户。
在实际使用时,消息服务节点可以判断在拉取历史消息时间范围内,是否包含缓存的广播消息ID,如果包含,则可以使用广播消息ID从内存映射查询该广播消息的内容,并组织为离线消息拉取结果,并发送给用户,并且,消息服务节点在进行缓存时,可以仅缓存广播消息ID,不需要对广播消息的内容进行存储,实现广播消息在分发过程中,仅存储一次广播消息的内容,减少磁盘使用。
为了便于理解,基于图2所示的即时通讯***,图3还示出了一种即时通讯***的交互示意图,如图3所示,该即时通讯***的交互过程包括以下步骤:
步骤S302,广播服务节点接收广播消息的分发业务请求,存储该广播消息,并生成广播消息ID;
步骤S304,广播服务节点向消息服务节点发送广播消息的缓存指令;
步骤S306,消息服务节点接收缓存指令,对广播消息的标识,以及广播消息的内容做内存级别字典映射;
步骤S308,广播服务节点采用分页方式从用户数据库中查询用户列表,生成每次分页查询的用户集合;
步骤S310,广播服务节点采用并行处理方式对每个用户集合包含的用户标识进行聚合分组,以生成每个消息服务节点对应的用户聚合任务;
步骤S312,广播服务节点向每个消息服务节点发送广播消息指令;
步骤S314,消息服务节点遍历用户聚合任务中的每个用户标识;判断用户标识对应的用户状态是否为在线状态;如果是,执行步骤S316;如果否,执行步骤S318;
步骤S316,向在线状态的用户标识发送广播消息;
步骤S318,缓存广播消息;
步骤S320,如果监测到离线状态的用户标识的上线消息,获取用户标识对应的历史消息拉取时间点,以历史消息拉取时间点为起点为用户标识对应的用户拉取广播消息;
步骤S322,将拉取的广播消息组织为离线消息拉取结果,并将离线消息拉取结果发送至用户标识。
综上,本发明实施例提供的即时通讯***具有以下优点:
(1)广播消息分发过程中使用用户分组聚合再分发的方式,减少了网络交互次数。
(2)在广播消息分发过程中,通过按照消息服务节点执行广播消息缓存指令的方式,将广播消息分发过程中,广播消息的网络传输次数由用户总数降低到消息服务节点数数量,极大的减少了网络传输数据量。
(3)广播消息分发过程中,仅存储一次广播消息的内容,减少磁盘使用。
实施例二:
在上述实施例的基础上,本发明实施例还提供了一种广播消息分发方法,该方法应用于上述实施例所述的即时通讯***,具体地,如图4所示的一种广播消息分发方法的流程图,该方法包括以下步骤:
步骤S402,广播服务节点接收广播消息的分发业务请求,根据当前连接的消息服务节点对预先存储的用户列表包含的用户标识进行聚合分组,以生成每个消息服务节点对应的用户聚合任务;
其中,该用户聚合任务包括多个用户标识;
步骤S404,广播服务节点向每个消息服务节点发送广播消息指令;
该广播消息指令包括用户聚合任务,以指示消息服务节点向用户聚合任务包括的多个用户标识提供广播消息分发服务;
步骤S406,消息服务节点接收上述广播消息指令,向对应的用户聚合任务包括的多个用户标识发送广播消息。
具体地,上述即时通讯***还包括与广播服务节点连接的消息数据库,广播消息的分发业务请求包括广播消息的内容;
因此,上述方法还包括:
广播服务节点在接收到广播消息的分发业务请求后,生成广播消息的标识,并将广播消息的标识与广播消息的内容关联存储至消息数据库;以及,
向消息服务节点发送广播消息的缓存指令;其中,该缓存指令包括广播消息的标识,以及广播消息的内容;
消息服务节点还用于接收上述缓存指令,对广播消息的标识,以及广播消息的内容进行缓存。
本发明实施例提供的广播消息分发方法,与上述实施例提供的即时通讯***具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述实施例二描述的具体工作过程,可以参考前述实施例中的对应过程,在此不再赘述。
进一步,本发明实施例还提供了一种计算机存储介质,用于存储计算机程序指令,当计算机执行所述计算机程序指令时,执行如上述图4所示的广播消息分发方法。
本发明实施例所提供的即时通讯***及广播消息分发方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种即时通讯***,其特征在于,包括:广播服务节点,以及与所述广播服务节点通信连接的多个消息服务节点;
所述广播服务节点用于接收广播消息的分发业务请求,根据当前连接的所述消息服务节点对预先存储的用户列表包含的用户标识进行聚合分组,以生成每个所述消息服务节点对应的用户聚合任务,其中,所述用户聚合任务包括多个所述用户标识;以及,
向每个所述消息服务节点发送广播消息指令,所述广播消息指令包括所述用户聚合任务,以指示所述消息服务节点向所述用户聚合任务包括的多个所述用户标识提供广播消息分发服务;
所述消息服务节点用于接收所述广播消息指令,向对应的所述用户聚合任务包括的多个所述用户标识对应的用户发送所述广播消息。
2.根据权利要求1所述的***,其特征在于,所述***还包括与所述广播服务节点和所述消息服务节点连接的消息数据库;所述广播消息的分发业务请求包括广播消息的内容;
所述广播服务节点还用于在接收到所述广播消息的分发业务请求后,生成所述广播消息的标识,并将所述广播消息的标识与所述广播消息的内容关联存储至所述消息数据库;以及,
向所述消息服务节点发送所述广播消息的缓存指令;其中,所述缓存指令包括所述广播消息的标识,以及所述广播消息的内容;
所述消息服务节点还用于接收所述缓存指令,对所述广播消息的标识,以及所述广播消息的内容进行缓存。
3.根据权利要求1所述的***,其特征在于,所述***还包括与所述广播服务节点连接的用户数据库;所述预先存储的用户列表保存在所述用户数据库中。
4.根据权利要求3所述的***,其特征在于,所述广播服务节点根据当前连接的所述消息服务节点对预先存储的用户列表包含的用户标识进行聚合分组的步骤包括:
在接收到所述广播消息的分发业务请求后,采用分页方式从所述用户数据库中查询所述用户列表,生成每次分页查询的用户集合;
采用并行处理方式对每个所述用户集合包含的用户标识进行聚合分组,以生成每个所述消息服务节点对应的用户聚合任务。
5.根据权利要求4所述的***,其特征在于,所述广播服务节点对每个所述用户集合包含的用户标识进行聚合分组的步骤包括:
为每个所述用户标识匹配对应的消息服务节点,生成所述用户标识与所述消息服务节点的对应关系;其中,所述对应关系包括所述用户标识,以及为所述用户标识对应的用户提供广播消息分发服务的所述消息服务节点的标识;
根据所述对应关系,将相同的所述消息服务节点对应的所述用户标识聚合成所述消息服务节点对应的用户聚合任务。
6.根据权利要求1所述的***,其特征在于,所述消息服务节点向对应的所述用户聚合任务中包括的多个所述用户标识发送所述广播消息的步骤包括:
所述消息服务节点遍历所述用户聚合任务中的每个用户标识;
判断所述用户标识对应的用户状态是否为在线状态;
如果是,向在线状态的所述用户标识发送所述广播消息;
如果否,缓存所述广播消息。
7.根据权利要求6所述的***,其特征在于,所述消息服务节点还用于:
如果监测到离线状态的用户标识的上线消息,获取所述用户标识对应的历史消息拉取时间点,以所述历史消息拉取时间点为起点,为所述用户标识对应的用户拉取广播消息;
将拉取的所述广播消息组织为离线消息拉取结果,并将所述离线消息拉取结果发送至所述用户标识对应的用户。
8.一种广播消息分发方法,其特征在于,所述方法应用于权利要求1~7任一项所述的即时通讯***,所述方法包括:
所述广播服务节点接收广播消息的分发业务请求,根据当前连接的所述消息服务节点对预先存储的用户列表包含的用户标识进行聚合分组,以生成每个所述消息服务节点对应的用户聚合任务,其中,所述用户聚合任务包括多个所述用户标识;以及,
向每个所述消息服务节点发送广播消息指令,所述广播消息指令包括所述用户聚合任务,以指示所述消息服务节点向所述用户聚合任务包括的多个所述用户标识提供广播消息分发服务;
所述消息服务节点接收所述广播消息指令,向对应的所述用户聚合任务包括的多个所述用户标识发送所述广播消息。
9.根据权利要求8所述的方法,其特征在于,所述即时通讯***还包括与所述广播服务节点连接的消息数据库,所述广播消息的分发业务请求包括广播消息的内容;
所述方法还包括:
所述广播服务节点在接收到所述广播消息的分发业务请求后,生成所述广播消息的标识,并将所述广播消息的标识与所述广播消息的内容关联存储至所述消息数据库;以及,
向所述消息服务节点发送所述广播消息的缓存指令;其中,所述缓存指令包括所述广播消息的标识,以及所述广播消息的内容;
所述消息服务节点还用于接收所述缓存指令,对所述广播消息的标识,以及所述广播消息的内容进行缓存。
10.一种计算机存储介质,其特征在于,用于存储计算机程序指令,当计算机执行所述计算机程序指令时,执行如权利要求8或9所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910047756.4A CN109617792A (zh) | 2019-01-17 | 2019-01-17 | 即时通讯***及广播消息分发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910047756.4A CN109617792A (zh) | 2019-01-17 | 2019-01-17 | 即时通讯***及广播消息分发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109617792A true CN109617792A (zh) | 2019-04-12 |
Family
ID=66019032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910047756.4A Pending CN109617792A (zh) | 2019-01-17 | 2019-01-17 | 即时通讯***及广播消息分发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109617792A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110505276A (zh) * | 2019-07-17 | 2019-11-26 | 北京三快在线科技有限公司 | 对象匹配方法、装置及***、电子设备及存储介质 |
CN111953584A (zh) * | 2020-08-21 | 2020-11-17 | 北京一起教育信息咨询有限责任公司 | 一种实时消息通道流量的优化方法及*** |
CN114465976A (zh) * | 2022-01-28 | 2022-05-10 | 深圳快银付信息科技有限公司 | 一种消息的分发与聚合方法及装置 |
CN115174501A (zh) * | 2022-05-23 | 2022-10-11 | 未名智算(北京)科技有限公司 | 一种用于网内聚合传输的服务***和服务方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834809A (zh) * | 2010-05-18 | 2010-09-15 | 华中科技大学 | 一种互联网即时消息通讯*** |
CN106998287A (zh) * | 2016-01-22 | 2017-08-01 | 北京北信源软件股份有限公司 | 一种针对隔离网络环境的即时通信群消息合并转发方法 |
CN108667899A (zh) * | 2018-03-29 | 2018-10-16 | 挂号网(杭州)科技有限公司 | 多终端消息同步和隔离即时通讯方法及*** |
US10110550B1 (en) * | 2007-07-23 | 2018-10-23 | Twitter, Inc. | Device independent message distribution platform |
-
2019
- 2019-01-17 CN CN201910047756.4A patent/CN109617792A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10110550B1 (en) * | 2007-07-23 | 2018-10-23 | Twitter, Inc. | Device independent message distribution platform |
CN101834809A (zh) * | 2010-05-18 | 2010-09-15 | 华中科技大学 | 一种互联网即时消息通讯*** |
CN106998287A (zh) * | 2016-01-22 | 2017-08-01 | 北京北信源软件股份有限公司 | 一种针对隔离网络环境的即时通信群消息合并转发方法 |
CN108667899A (zh) * | 2018-03-29 | 2018-10-16 | 挂号网(杭州)科技有限公司 | 多终端消息同步和隔离即时通讯方法及*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110505276A (zh) * | 2019-07-17 | 2019-11-26 | 北京三快在线科技有限公司 | 对象匹配方法、装置及***、电子设备及存储介质 |
CN111953584A (zh) * | 2020-08-21 | 2020-11-17 | 北京一起教育信息咨询有限责任公司 | 一种实时消息通道流量的优化方法及*** |
CN114465976A (zh) * | 2022-01-28 | 2022-05-10 | 深圳快银付信息科技有限公司 | 一种消息的分发与聚合方法及装置 |
CN115174501A (zh) * | 2022-05-23 | 2022-10-11 | 未名智算(北京)科技有限公司 | 一种用于网内聚合传输的服务***和服务方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109617792A (zh) | 即时通讯***及广播消息分发方法 | |
CN112689300B (zh) | 管理应用和执行单元的方法、装置、***及介质 | |
CN106897810B (zh) | 业务处理方法和***、工作流引擎和***、业务*** | |
CN101404627B (zh) | 即时通讯***更新联系人状态的方法及即时通讯*** | |
US8838703B2 (en) | Method and system for message processing | |
CN105450705B (zh) | 业务数据处理方法及设备 | |
CN107341044A (zh) | 一种分布式数据中心统一监控架构及方法 | |
CN104536965B (zh) | 一种大数据条件下的数据查询展示***及方法 | |
CN109558301A (zh) | 一种分布式***数据监测方法、装置及相关设备 | |
CN105959395A (zh) | 一种集群自反馈式负载均衡调度***及方法 | |
CN106814975A (zh) | 一种用于多类型存储设备的存储管理方法及其*** | |
CN106933989A (zh) | 一种网上发布信息***的方法 | |
TW201814609A (zh) | 一種資訊推送的方法和系統及用戶端和伺服器 | |
CN109492056A (zh) | 一种商业智能数据查询的方法和*** | |
CN103947157A (zh) | M2m通信用装置及方法 | |
CN103414732B (zh) | 应用集成装置和应用集成处理方法 | |
CN112131338A (zh) | 一种建立问答对的方法及装置 | |
CN105468699B (zh) | 去重数据统计方法及设备 | |
CN105450589B (zh) | 远程调用方法及*** | |
JP2002351760A (ja) | サーバ負荷分散装置、サーバ負荷分散方法およびその方法をコンピュータに実行させるプログラム | |
CN104363257B (zh) | 一种用户界面数据刷新方法和设备 | |
CN107784463A (zh) | 库存信息处理方法、***及设备 | |
CN103312586B (zh) | 一种即时通信的方法、***及服务器 | |
CN104699687A (zh) | 一种物品推荐方法及服务器 | |
CN109063140A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190412 |
|
RJ01 | Rejection of invention patent application after publication |