CN117097785A - 消息发送方法、电子设备及通信系统 - Google Patents
消息发送方法、电子设备及通信系统 Download PDFInfo
- Publication number
- CN117097785A CN117097785A CN202210523710.7A CN202210523710A CN117097785A CN 117097785 A CN117097785 A CN 117097785A CN 202210523710 A CN202210523710 A CN 202210523710A CN 117097785 A CN117097785 A CN 117097785A
- Authority
- CN
- China
- Prior art keywords
- channel
- message
- service
- server
- area
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 152
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000012545 processing Methods 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 19
- 230000001360 synchronised effect Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 239000002699 waste material Substances 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 33
- 239000003999 initiator Substances 0.000 description 21
- 230000005540 biological transmission Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 16
- 238000013507 mapping Methods 0.000 description 15
- 238000010295 mobile communication Methods 0.000 description 12
- 238000007726 management method Methods 0.000 description 10
- 230000003993 interaction Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000009471 action Effects 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000003416 augmentation Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000000969 carrier Substances 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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]
Abstract
本公开的实施例提供了一种消息发送方法,用于解决在即时消息系统中,无差别广播消息导致的系统资源浪费以及下行消息发送效率低下的问题。在该方法中,通过在各区域的区域节点中引入位置服务,构建每个客户端与加入频道、分布区域节点的关系数据,使得消息精确下发到指定的包含同频道客户端的区域节点。另外还可以在接入服务的内存中,保存客户端和频道的关系。实施本方法,可以精确地将消息转发给指定的区域,减少无效的消息广播,提高消息转发的效率,降低系统资源的消耗,减少了网络延迟,提高了消息下发的速率,节省了通信资源。
Description
技术领域
本公开涉及通信领域,更具体地,涉及一种消息发送方法、电子设备及通信系统。
背景技术
在即时消息(instant message,IM)系统(或者又可称为实时消息(real-timemessage,RTM)系统)中,为了保证系统的高可用和用户就近接入的体验,往往会在不同物理区域部署多套系统,组成一个分布式、多站点的系统。位于同一个线上会议或直播频道里的不同用户,物理上可能分布在不同的区域站点,但是会基本同步收到消息。所以,这些分布式、多站点的系统就会涉及到跨区域跨云的消息转发,消息通过不同用户的接入点下发给不同用户。但是系统中用户众多,如观看直播的用户数量可能达到上百万,消息的实时传送会消耗大量网络资源和系统资源。
发明内容
本申请的实施例提供了一种消息发送方法、电子设备及通信系统,用于解决在即时消息系统中,尤其是海量用户的应用场景下,无差别广播消息导致的系统资源浪费的问题,以及下行消息发送效率低下的问题。在该方法中,通过在各区域的区域节点中引入位置服务,构建每个客户端与加入频道、分布区域节点的关系数据,使得消息精确下发到指定的包含同频道客户端的区域节点。另外还可以在接入服务的内存中,保存客户端和频道的关系。
在本申请的第一方面,提供了一种消息发送方法,应用于通信系统,通信系统包括第一服务器、第一终端、第二服务器、第二终端,第一终端位于第一区域,第一服务器为第一区域的服务器节点,第二终端位于第二区域,第二服务器为第二区域的服务器节点,该方法包括:第一终端向第一服务器发送消息,其中,第一终端加入的频道为第一频道,第二终端加入的频道为第一频道,第二服务器保存有第一频道与第二区域的对应关系,第二服务器保存有第一频道与第二终端的对应关系。第二服务器将第一频道与第二区域的对应关系同步给第一服务器。根据第一频道与第二区域的对应关系,第一服务器向第二服务器发送消息。根据第一频道与第二终端的对应关系,第二服务器向第二终端发送消息。
实施本申请的技术方案,可以精确地将消息转发给指定的区域,减少无效的消息广播,提高消息转发的效率,降低系统资源的消耗,减少了网络延迟,提高了消息下发的速率,节省了通信资源。
结合第一方面,在一些实施例中,第一服务器保存有第一频道与第一区域的对应关系,第一服务器保存有第一频道与第一终端的对应关系。根据第一频道与第一区域的对应关系,第一服务器向第一服务器发送消息。根据第一频道与第一终端的对应关系,第一服务器向第一终端发送消息。
结合第一方面,在一些实施例中,响应于第一终端加入第一频道,第一服务器保存第一频道与第一终端的对应关系。响应于第二终端加入第一频道,第二服务器保存第一频道与第二终端的对应关系。
结合第一方面,在一些实施例中,第一服务器包括第一接入服务、第一消息服务、第一位置服务,第二服务器包括第二接入服务、第二消息服务、第二位置服务、同步服务。其中,第一终端向第一接入服务发送消息,第二位置服务保存有第一频道与第二区域的对应关系,第二接入服务保存有第一频道与第二终端的对应关系,第二位置服务从第二接入服务获取到第一频道与第二区域的对应关系。同步服务将第一频道与第二区域的对应关系同步给第一位置服务。第一接入服务向第一消息服务发送消息。根据第一位置服务所保存的第一频道与第二区域的对应关系,第一消息服务向第二消息服务发送消息。第二消息服务向第二接入服务广播消息。根据第二接入服务所保存的第一频道与第二终端的对应关系,第二接入服务向第二终端发送消息。
结合第一方面,在一些实施例中,第一位置服务保存有第一频道与第一区域的对应关系,第一接入服务保存有第一频道与第一终端的对应关系,第一位置服务从第一接入服务获取到第一频道与第一区域的对应关系。根据第一位置服务所保存的第一频道与第一区域的对应关系,第一消息服务向第一接入服务广播消息。根据第一接入服务所保存的第一频道与第一终端的对应关系,第一接入服务向第一终端发送消息。
结合第一方面,在一些实施例中,同步服务为第二同步服务,第一服务器还包括第一同步服务。第一同步服务将第一频道与第一区域的对应关系同步给第二位置服务。
结合第一方面,在一些实施例中,通信系统还包括第三终端和第三服务器,第三终端位于第三区域,第三服务器为第三区域的服务器节点,第三终端加入的频道为第二频道,第三服务器保存有第二频道与第三区域的对应关系。第三服务器将第二频道与第三区域的对应关系同步给第一服务器。响应于未查询到第一频道与第三区域存在对应关系,第一服务器确定不向第三服务器发送消息。
在本申请的第二方面,提供了一种消息发送方法,应用于第一服务器,该方法包括:第一服务器接收第一终端的消息,其中,第一终端位于第一区域,第一服务器为第一区域的服务器节点,第二终端位于第二区域,第二服务器为第二区域的服务器节点,第一终端加入的频道为第一频道,第二终端加入的频道为第一频道,第二服务器保存有第一频道与第二区域的对应关系。第一服务器接收来自于第二服务器所同步的第一频道与第二区域的对应关系。根据第一频道与第二区域的对应关系,第一服务器向第二服务器发送消息。
实施本申请的技术方案,可以精确地将消息转发给指定的区域,减少无效的消息广播,提高消息转发的效率,降低系统资源的消耗,减少了网络延迟,提高了消息下发的速率,节省了通信资源。
结合第二方面,在一些实施例中,第一服务器保存有第一频道与第一区域的对应关系,第一服务器保存有第一频道与第一终端的对应关系。根据第一频道与第一区域的对应关系,第一服务器向第一服务器发送消息。根据第一频道与第一终端的对应关系,第一服务器向第一终端发送消息。
结合第二方面,在一些实施例中,响应于第一终端加入第一频道,第一服务器保存第一频道与第一终端的对应关系。
结合第二方面,在一些实施例中,第一服务器包括第一接入服务、第一消息服务、第一位置服务,第二服务器包括第二接入服务、第二消息服务、第二位置服务、同步服务。第一接入服务接收第一终端的消息,第二位置服务保存有第一频道与第二区域的对应关系,第二位置服务从第二接入服务获取到第一频道与第二区域的对应关系。第一位置服务接收来自于同步服务所同步的第一频道与第二区域的对应关系。第一接入服务向第一消息服务发送消息。根据第一位置服务所保存的第一频道与第二区域的对应关系,第一消息服务向第二消息服务发送消息。
结合第二方面,在一些实施例中,第一位置服务保存有第一频道与第一区域的对应关系,第一接入服务保存有第一频道与第一终端的对应关系,第一位置服务从第一接入服务获取到第一频道与第一区域的对应关系。根据第一位置服务所保存的第一频道与第一区域的对应关系,第一消息服务向第一接入服务广播消息。根据第一接入服务所保存的第一频道与第一终端的对应关系,第一接入服务向第一终端发送消息。
结合第二方面,在一些实施例中,同步服务为第二同步服务,第一服务器还包括第一同步服务。第一同步服务将第一频道与第一区域的对应关系同步给第二位置服务。
结合第二方面,在一些实施例中,第一服务器接收到来自于第三服务器所同步的第二频道与第三区域的对应关系,其中,第三服务器为第三区域的服务器节点,第三服务器保存有第二频道与第三区域的对应关系。响应于未查询到第一频道与第三区域存在对应关系,第一服务器确定不向第三服务器发送消息。
在本申请的第三方面,提供了一种用于消息发送的服务器,该服务器包括:接入服务,用于接收第一终端的消息,其中,第一终端位于第一区域,服务器为第一区域的服务器节点,第二服务器为第二区域的服务器节点,第一终端加入的频道为第一频道,第二服务器保存有第一频道与第二区域的对应关系。接入服务还用于向消息服务发送消息。消息服务,用于接收接入服务的消息。位置服务用于接收来自于第二服务器所同步的第一频道与第二区域的对应关系。消息服务还用于根据位置服务所保存的第一频道与第二区域的对应关系,向第二服务器发送消息。
实施本申请的技术方案,可以精确地将消息转发给指定的区域,减少无效的消息广播,提高消息转发的效率,降低系统资源的消耗,减少了网络延迟,提高了消息下发的速率,节省了通信资源。
结合第三方面,在一些实施例中,位置服务还用于保存第一频道与第一区域的对应关系。接入服务还用于保存第一频道与第一终端的对应关系。位置服务还用于从接入服务获取第一频道与第一区域的对应关系。接入服务还用于向位置服务发送第一频道与第一区域的对应关系。消息服务还用于根据位置服务所保存的第一频道与第一区域的对应关系,向接入服务广播消息。接入服务还用于接收消息服务的消息。接入服务还用于根据接入服务所保存的第一频道与第一终端的对应关系,向第一终端发送消息。
结合第三方面,在一些实施例中,还包括同步服务,用于将第一频道与第一区域的对应关系同步给第二服务器。
结合第三方面,在一些实施例中,位置服务还用于接收来自于第三服务器所同步的第二频道与第三区域的对应关系,其中,第三服务器为第三区域的服务器节点,第三服务器保存有第二频道与第三区域的对应关系。消息服务还用于响应于未查询到第一频道与第三区域存在对应关系,确定不向第三服务器发送消息。
在本申请的第四方面,提供了一种服务器,该服务器包括存储器以及耦合于存储器的处理器,存储器中存储有可执行指令,处理器用于调用可执行指令,使得该服务器实现根据上述第二方面或其任一实施例中的方法的操作。
在本申请的第五方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,计算机可执行指令被处理器执行时实现根据上述第二方面或其任一实施例中的方法的操作。
在本申请的第六方面,提供了一种计算机程序产品,该计算机程序产品上包含计算机可执行指令,计算机可执行指令在被执行时实现根据上述第二方面或其任一实施例中的方法的操作。
在本申请的第七方面,提供了一种芯片或芯片系统,该芯片或芯片系统包括处理电路,其被配置为实现根据上述第二方面或其任一实施例中的方法的操作。
实施以上各个方面,可以精确地将消息转发给指定的区域,减少无效的消息广播,提高消息转发的效率,降低系统资源的消耗。还可以将接入功能和查询功能合并由同一个服务提供,减少了由于服务之间的调用而产生的网络延迟,降低了消息传输的耗费时间,提高了消息下发的速率,节省了通信资源。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1示出了根据本申请的实施例的一种应用场景的示意图;
图2示出了根据本申请的实施例的一种网络会议的示意图;
图3示出了根据本申请的实施例的一种消息流转的示意图;
图4A示出了根据本申请的实施例的一种通信系统的架构示意图;
图4B示出了根据本申请的实施例的一种通信系统的功能模块示意图;
图5示出了根据本申请的实施例的终端设备的结构示意图;
图6示出了根据本申请的实施例的服务器的结构示意图;
图7示出了根据本申请的实施例的一种消息流转的示意图;
图8示出了根据本申请的实施例的一种消息逻辑交互图;
图9示出了根据本申请的实施例的一种消息时序流程图;
图10示出了根据本申请的实施例的一种消息发送方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“该”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
在本申请的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。应理解,“第一”,“第二”,“第三”等表述只是为了表示多个对象可能是不同的,但是同时不排除两个对象之间是相同的。“第一”,“第二”,“第三”等表述不应当解释为对实施例的任何限制。术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。下文还可能包括其他明确的和隐含的定义。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
为了方便即时消息系统(例如线上的会议或直播等)中的消息传送,通常会在不同物理区域部署多套系统,组成一个分布式、多站点的系统。即位于同一个即时消息系统中的不同用户,物理上可能分布在不同的区域站点,但是会基本同步收到消息。这就涉及到跨区域跨云的消息转发,消息通过不同用户的接入点下发给不同用户。
在本申请各实施例中,“即时消息系统(或称实时消息系统)”可以指网络中实现实时互动通信的架构系统,需要具备实时互动、高实时性的功能,常见的应用场景包括但不限于:群聊天、直播、网络会议、网络教学、网络研讨会、网络发布会等业务领域。
在本申请的实施例中,“区域”(也可称为“地域”)可以是指系统服务的地理区域,一个区域(或地域)内的一个或多个用户由同一套系统来服务。“频道”可以是指一个逻辑上的用户群组。
在本申请的实施例中,术语“广播”是指计算机网络中的团体通信方式,指的是发送方向网络中的所有接收方发送消息,即发送方向网络中每一个主机都投递一份数据包,不论这些主机是否愿意接收该数据包。当需要将通用消息传递给网络中的所有主机时,使用广播可以确保更好的利用资源和更快的传递消息,可以通过最大限度地减少通信和处理开销来帮助实现规模经济。
在本申请的实施例中,“服务器”指的是一种管理计算资源的计算机,服务器可以在网络中为其他客户端(如手机、电脑等终端)提供计算或者应用服务。相比于普通计算机,服务器具有更高速的处理运算能力、长时间的可靠运行、更高负载、强大的输入输出(I/O)外部数据吞吐能力以及更好的延展性等优势。
在本申请的实施例中,“区域节点”是一个逻辑概念,其用于向所属区域内的客户端提供一个或多个功能和服务,还用于作为中转单元与其他区域进行通信。一个通信网络中可以包括许多个区域节点,通过通信线路将这多个区域节点连接起来,实现不同区域之间的网络通信。在本申请的实施例中,区域节点可以实现为一个服务器,也可以实现为多个服务器组成的服务器集群,因此又可以称为服务器节点,其部署方式可以是灵活多样的,本申请实施例对此不作限制。
参考图1,图1示出了本申请实施例的一个示例性应用场景100。
如图1所示,应用场景100是网络会议101通信系统的示例场景。会议网络会议101通信系统中包括多个用户终端,多个用户终端分布在不同区域中,整体组成一个分布式即时消息系统,各区域覆盖的用户终端就近接入到本区域,并参加同一场网络会议101,分别通过各自区域的服务器接入网络会议101并收发消息。
如图1所示,位于区域105中的终端102通过区域节点108接入网络会议101并收发消息,位于区域106中的终端103通过区域节点109接入网络会议101并收发消息,位于区域107中的终端104通过区域节点110接入网络会议101并收发消息。任意一个参会终端在网络会议101中发送消息,该消息会转发给网络会议101的其他区域的参会终端。在本实施例中,区域节点可以实现为一个服务器,也可以实现为多个服务器组成的服务器集群,本申请实施例对此不作限制。
其中,如图2所示,网络会议101中的用户角色可以包括会议主持人(或称发起者)201和一个或多个参会成员(或称与会者)202。其中,会议主持人201可以执行的动作或实现的功能包括:创建会议203、邀请成员加入204(会议)、收发消息205、解散会议206等,参会成员202可以执行的动作或实现的功能包括:响应于会议主持人201的邀请从而加入会议208、收发消息209、离开会议210等,其中,网络会议101中的消息可以经由服务器实现消息转发207,使得网络会议101中的消息可以同步流转到不同区域的会议主持人201及一个或多个参会成员202上。
参考图3,图3示出了本申请一些实施例提供的即时消息系统300的消息流转图。
在一些实施例中,一个即时消息系统中包括多个区域节点,一个区域节点可以对应一个或多个区域,该区域节点可以为其对应区域中的一个或多个客户端提供功能和服务。在本实施例中,区域节点可以实现为一个服务器,也可以实现为多个服务器组成的服务器集群,本申请实施例对此不作限制。
在本实施例中,区域节点中可以包括频道服务、消息服务、接入服务等,任一用户客户端在所在频道里发消息,可以通过本区域的接入服务将消息的传送给本区域的消息服务,本区域的消息服务再将该消息广播给即时消息系统中的其他所有区域。每个其他区域的消息服务收到该消息后,通过区域中的频道服务查询该频道下的成员列表,然后将该消息下发给该频道下成员对应的客户端。
其中,频道服务用于记录、保存和更新客户端和频道的关系列表,消息服务用于收发系统中的消息,接入服务用于接入客户端以及保持与客户端之间的长链接。
即时消息系统300中包括多个客户端,分布在不同区域中,在同一个频道中,任一客户端发消息都可同步给其他区域中同频道的客户端。如图3所示,即时消息系统300中包括客户端305、客户端315、客户端325以及对应区域的区域节点301、区域节点311、区域节点321。假设客户端305、客户端315、客户端325为同一频道中的成员。客户端305通过接入区域节点301来加入即时消息系统300,客户端315通过接入区域节点311来加入即时消息系统300,客户端325通过接入区域节点321来加入即时消息系统300。其中,区域节点301包括接入服务302、消息服务303、频道服务304等,区域节点311包括接入服务312、消息服务313、频道服务314等,区域节点321包括接入服务322、消息服务323、频道服务324等。
其中,各个区域节点中的频道服务用于记录、保存和更新即时消息系统300中客户端和频道的关系列表,每当有客户端加入或离开频道,频道服务就记录、保存和更新该客户端和频道的关系。针对即时消息系统300中的一个或多个客户端与频道的对应关系,频道服务可以生成客户端与频道的映射表,并同步到各个区域的频道服务中,方便各个区域节点分发消息时查询客户端与频道的关系。各个区域节点中的消息服务用于收发即时消息系统300中其他区域的消息,例如消息服务303、消息服务313、消息服务323之间可以互相收发消息,各个区域中的消息服务还用于通过接入服务收发对应区域中客户端的消息,例如消息服务303可以通过接入服务302接收来自于客户端305的消息并且广播给其他区域,消息服务303还可以将接收到的来自于其他区域的消息通过接入服务302转发给客户端305。各个区域节点中的接入服务用于为本区域内的客户端提供接入以及保持与客户端之间的长链接,例如客户端305通过接入服务302接入区域节点301,客户端315通过接入服务312接入区域节点311,客户端325通过接入服务322接入区域节点321。
如图3所示,当客户端305在所在频道内发送消息时,客户端305先331发送消息到接入服务302,接入服务302再332发送消息到消息服务303,然后消息服务303在频道服务304中334查询成员列表,以确定客户端305的所在频道。消息服务303会在即时消息系统300中333广播消息,将客户端305的消息发送给所有区域,其中,该广播消息携带客户端305所在频道的标识信息和客户端305所发消息的数据。当然,消息服务303可以335下发消息给接入服务302,接入服务302再336下发消息到客户端305,客户端305接收到自己在系统中发送的消息。
区域节点311的消息服务313接收到消息服务303的广播消息时,先去频道服务314中337查询成员列表,根据频道的标识信息确定本区域内属于同一频道的是哪些客户端。如果确定本区域内的客户端315是同一频道的成员,消息服务313即会338下发消息给接入服务312,接入服务312再339下发消息到客户端315。经过上述过程,客户端315收到来自于客户端305的消息。如果确定本区域内的客户端315不是同一频道的成员,那么消息服务313不会继续下发消息给客户端315。
同样的,区域节点321的消息服务323接收到消息服务303的广播消息时,先去频道服务324中340查询成员列表,根据频道的标识信息确定本区域内属于同一频道的是哪些客户端。如果确定本区域内的客户端325是同一频道的成员,消息服务323即会341下发消息给接入服务322,接入服务322再342下发消息到客户端325。经过上述过程,客户端325收到来自于客户端305的消息。如果确定本区域内的客户端325不是同一频道的成员,那么消息服务323不会继续下发消息给客户端325。
即时消息系统300可以为群聊天、直播、网络会议、网络教学、网络研讨会、网络发布会等。结合图1,在一个示例中,即时消息系统300可实施为应用场景100中的网络会议101,客户端305、客户端315、客户端325可实施为应用场景100中的终端102、终端103、终端104(不限制顺序),区域节点301、区域节点311、区域节点321可实施为应用场景100中的区域节点108、区域节点109、区域节点110(不限制顺序)。
图3示出的即时消息系统300还具有一些改进之处,一是由于每一条消息都要广播给所有的区域,无论在该区域内是否有同频道的成员接入,每个区域的服务器都需要处理这条消息,因此这导致很多的系统资源浪费。二是区域的服务器对接收到的每条消息都要去查询频道成员列表,每次查询均需要耗费时间,在直播、网络研讨会、发布会等用户量比较大的场景下,会导致即时消息延迟高,通信效率比较低下。
本申请的实施例提出了一种针对跨区域跨云的即时消息系统的消息发送方法、相关设备及通信系统,用于解决在即时消息系统中,尤其是海量用户的应用场景下,无差别广播消息导致的系统资源浪费的问题,以及下行消息发送效率低下的问题。在该消息发送方法中,可以通过在各区域的区域节点中引入位置服务,根据客户端接入的区域节点以及客户端加入频道的动作,将客户端与对应频道、对应区域节点的信息同步给位置服务,构建每个客户端与加入频道、分布区域节点的关系数据。从而使得任一区域节点将本区域中客户端的消息发送给其他区域节点之前,先确定该客户端所属频道分布在哪些区域,也即哪些区域包含相同频道的客户端,然后再将消息精确下发到指定的包含同频道客户端的区域节点,而不需广播给所有区域节点。此外,还可以在各区域节点的接入服务的内存中,保存客户端和频道的关系,因此不用使用频道服务来查询频道成员列表,而是直接由接入服务根据频道和客户端的对应关系而向不同客户端下发对应频道的消息,这减少了由于服务之间的调用而产生的网络延迟,极大提升了大量消息下发的速率。
实施本申请的实施例,可以精确地将消息转发给指定的区域,减少无效的消息广播,提高消息转发的效率,降低系统资源的消耗。还可以将接入功能和查询功能合并由同一个服务提供,减少了由于服务之间的调用而产生的网络延迟,降低了消息传输的耗费时间,提高了消息下发的速率,节省了通信资源。
首先,介绍本申请的实施例提供的通信系统400。图4A示出了本申请实施例提供的一种通信系统400。在一些实施例中,通信系统400可以实施为即时消息系统,如即时消息系统300,或即时消息系统700,或云会议系统800等。
通信系统400中可以包括多个智能终端设备(user equipment,UE),这多个终端设备可以分布在不同区域中,各区域覆盖的终端设备就近接入到本区域的服务器(或称服务器节点、区域节点),各区域的服务器接入网络,通过网络连接实现不同服务器之间的通信,从而不同区域的终端设备之间可以通过服务器实现通信。
终端设备,简称为终端(terminal)。终端可以是固定的,也可以是移动的。终端设备通常是可以与用户交互、为用户提供业务功能的智能电子设备,有些终端可以提供用户界面。终端设备在有些情况下也可以称为用户设备、接入终端、客户端、用户终端、用户单元、用户站、站(station,STA)、移动设备、移动终端、移动站、移动台(mobile station)、移动客户端、移动单元(mobile unit)、远方站、远程终端、远程单元、无线单元、通信设备、用户代理或用户装置等。
本申请实施例对终端的具体类型不做限定。示例性的,终端可以是智能手机(mobile phone)、平板电脑(Pad)、个人计算机(personal computer,PC)、台式电脑、便携电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、上网本、游戏机、电子会议白板、智慧屏(智能电视)、无人机、蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备、车机(车载设备)、物联网(internet of things,IOT)设备、以及工业控制(industrial control)中的终端、智能电网(smart grid)中的终端、运输安全(transportation safety)中的终端、智慧城市(smartcity)中的终端、智慧家庭(smart home)中的终端或者其他类型的电子设备等等。本申请实施例对终端的应用场景不作特殊限制。
本申请实施例中的各终端设备可以搭载系统、/>系统、、/>系统、/>系统、/>系统(HarmonyOS,HOS)或者其他类型的操作系统,本申请对此不作限制。通信系统400中的各个终端设备的操作系统可以相同也可以不同,本申请对此不作限制。在一些实施例中,多个终端均搭载有HarmonyOS,那么该多个终端组成的系统可以称为/>超级虚拟终端(super virtual device),亦可称为/>超级终端,指的是通过分布式技术将多个终端的能力进行整合,存放在一个虚拟的硬件资源池里,根据业务需要统一管理、调度和整合终端能力,来对外提供服务,使得不同终端之间实现快速连接、能力互助、资源共享。
如图4A中所示,通信系统400中的多个终端分布在不同区域中,如包括区域410、区域420、区域430等多个区域。区域410中包括终端500-1、终端500-2等客户端,区域410中的各客户端可以通过服务器600-1接入网络。区域420中包括终端500-3、终端500-4等客户端,区域420中的各客户端可以通过服务器600-2接入网络。区域430中包括终端500-5、终端500-6等客户端,区域430中的各客户端可以通过服务器600-3接入网络。每个区域的服务器可以收发本区域内客户端的消息,并且每个区域的服务器可以经由网络与其他区域的服务器通信。例如,通信系统400中终端500-1向终端500-3发送消息时,服务器600-1可以接收区域410内终端500-1的消息,然后经由网络将该消息发送给服务器600-2,服务器600-2再将该消息下发给区域420内终端500-3。可以理解的是,服务器600-1、服务器600-2、服务器600-3可以实现为一个服务器,也可以实现为多个服务器组成的服务器集群,本申请实施例对此不作限制。
通信系统400中的各个区域的每个终端与服务器之间,不同区域的服务器与服务器之间建立有通信连接,以便传输指令、消息、数据等。本申请实施例对各个通信连接的类型不作限制,通信连接可以是无线连接,也可以是有线连接。
在一些实施例中,终端设备与服务器之间的通信连接可以是近距离通信连接。比如有线连接,如通用串行总线(uniersalserialbus,USB)连接、高清多媒体接口(highdefinition multimedia interface,HDMI)连接、显示接口(display port,DP)连接等。或者无线连接,如蓝牙(bluetooth,BT)连接、无线保真(wir eless fidelity,Wi-Fi)连接、热点连接、近场通信(near field communication,NFC)、ZigBee等,实现各个终端之间在无账号或异账号情况下通信。无线连接没有连线束缚,用户活动自由度更高。本申请实施例对通信连接的类型不作限制。终端设备中可以配置有蓝牙(bluetooth,BT)模块和/或无线局域网络(wireless local area networks,WLAN)模块。其中,蓝牙模块可以提供包括经典蓝牙(蓝牙2.1)或蓝牙低功耗(bluetooth low energy,BLE)中一项或多项蓝牙通信的解决方案,WLAN模块可以提供包括无线保真点对点连接(wireless fidelity peer-to-peer,Wi-Fi P2P)、无线保真局域网(wireless fidelity local area networks,Wi-Fi LAN)或无线保真软件接入点(wireless fidelity software access point,Wi-Fi softAP)中一项或多项WLAN通信的解决方案。在一些实施例中,Wi-Fi P2P是指允许无线网络中的设备无需通过无线路由器即可以点对点形式相互连接,在系统中又可称为无线保真直连(wireless fidelity direct,Wi-Fi direct)。建立Wi-FiP2P连接的设备之间可以在不连接网络或热点的情况下,直接通过Wi-Fi(必须处于同一频段)进行数据交换,实现点对点的通信,如传输文件、图片、视频等数据。相对于蓝牙,Wi-Fi P2P具有搜索速度和传输速度更快、传输距离更远等优点。
在一些实施例中,终端设备与服务器之间的通信连接还可以为远距离通信连接。比如有线连接诸如宽带连接、光纤连接等,再比如无线连接诸如各个终端登录同一个账号从而通过网络接入服务器实现连接并通信。通信系统400中的多个终端设备也可以登录不同账号,但通过绑定的方式进行连接。例如,手机和智能手表可以登录不同的账号,手机在设备管理应用中,将智能手表和本身进行绑定,之后通过该设备管理应用来连接。在一些实施例中,当两个终端设备互为可信设备时,比如该两个终端设备在之前进行匹配或连接过,待再次连接时,这两个终端设备将会自动建立通信连接,然后进行数据交互,无需用户手动再次进行连接或匹配的操作,省时省力。如,已配对蓝牙的电子设备,连接过分享的热点的电子设备,或者,建立过Wi-Fi P2P连接等,可以确认为已建立可信关系,本实施例对此不作限定。
在一些实施例中,终端设备与服务器之间的通信连接还可以为结合上述任意几种方式来连接并通信,本申请实施例对此不做限制。
在一些实施例中,不同区域的服务器与服务器之间可以通过互联网实现连接并通信,比如进行视频会议、直播等。其通信连接可以是有线连接,如光纤连接,也可以为无线连接,或者有线连接与无线连接的任意组合。
通信系统400中的终端设备与服务器之间的连接,服务器与服务器之间的连接可以是多个连接组合而成,以最终实现不同区域的终端与终端之间的通信。例如,区域410的终端500-2(如手机)向区域420的终端500-4(如PC)发送消息,终端500-2通过Wi-Fi与路由器建立连接,从而接入网络,或通过蜂窝信号与基站建立连接,从而接入网络,使得手机与服务器600-1(如云服务器或云主机)建立通信。服务器600-1再将该消息通过互联网发送给服务器600-2。服务器600-2通过宽带连接再将该消息下发给区域420的终端500-4。
在一些实施例中,服务器(或服务器集群)中包括位置服务、消息服务、接入服务等。其中,位置服务用于记录、保存和更新频道和区域节点的关系,供消息服务查询;消息服务用于收发系统中其他区域节点的消息,以及收发本区域节点中接入服务的消息;接入服务用于接入本区域内的客户端以及保持与客户端之间的长链接,接入服务还用于记录、保存和更新客户端和频道的关系。需要注意的是,本申请实施例中不限定一个区域节点中位置服务、消息服务、接入服务、客户端的类型、数量和关联关系,在一些实施例中,一个区域节点中可以包括一个或多个接入服务、一个或多个消息服务、一个或多个位置服务,一个客户端可以接入一个接入服务,一个接入服务可以服务多个客户端,一个或多个消息服务可以对应一个或多个接入服务等。
任一客户端在所在频道里发消息,可以通过本区域的接入服务将消息的传送给本区域的消息服务,本区域的消息服务查询位置服务中所记录的频道和区域节点的关系,再将该消息转发给即时消息系统中同频道的指定区域节点。指定区域节点的消息服务收到该消息后,将该消息广播给本区域的所有接入服务,每个接入服务中保存有其服务的客户端和频道的关系,接入服务再根据查询到的频道和客户端的关系,将该消息下发给该频道对应的客户端。
本申请实施例对通信系统400各个通信连接的类型不作限制。各个终端之间、终端与服务器之间、服务器与服务器之间等可通过各种通信连接类型以及结合上述任意几种方式来连接并通信,进行数据的传输和交互,本申请实施例对此不做限制。
需要说明的是,图4A所示的通信系统400仅用于辅助描述本申请实施例提供的技术方案,并不对本申请实施例构成限制。在实际业务场景中,通信系统400可以包括更多或更少的终端设备、更多或更少的服务器、更多或更少的区域等,本申请实施例对终端数量及类型、服务器数量及类型、通信连接方式等不作任何限定。
下面介绍本申请的实施例提供的通信系统400的功能模块(或者称为逻辑单元)。
本申请实施例可以对通信系统400进行功能模块的划分,例如,可以将通信系统400的各个功能划分各个功能模块,也可以将通信系统400的两个或两个以上的功能集成在一个功能模块中,本实施例不作限制。上述集成的模块既可以采用硬件或软件的形式实现,也可以采用软硬件结合的形式实现。
示例性的,图4B示出了本申请实施例提供的通信系统400的功能模块示意图。示例性地,如图4B所示,通信系统400可以包括终端设备500-1、服务器600-1、服务器600-2和终端设备500-3。在一些实施例中,终端设备500-1、终端设备500-3可以被实现为本申请各个实施例中所描述的终端设备、用户或客户端等,服务器600-1、服务器600-2可以被实现为本申请各个实施例中所描述的区域节点、服务器、服务器群组、云服务器等,为了简洁,这里不多赘述。通信系统400、终端设备500-1、服务器600-1、服务器600-2和终端设备500-3中的各个功能模块可以通过软件、硬件或者两者结合的方式实现。
如图4B所示,终端设备500-1可包括:通信单元401和处理单元402。
其中,通信单元401可用于与服务器600-1通信,终端设备500-1可通过通信单元401接入服务器600-1的接入服务411,向服务器600-1的接入服务411发送消息,或接收服务器600-1的接入服务411的消息。通信单元401中可以包括有线协议栈和无线协议栈,分别负责协商处理有线通信和无线通信的协议。
处理单元402是控制中心,可用于处理和控制消息的发送和接收、任务调度等,包括网络的控制面通信和转发面通信,如数据的封装与解封装、流量转发信息的查询等。
类似的,如图4B所示,终端设备500-3可包括:通信单元403和处理单元404。
其中,通信单元403可用于与服务器600-2通信,终端设备500-3可通过通信单元403接入服务器600-2的接入服务421,向服务器600-2的接入服务421发送消息,或接收服务器600-2的接入服务421的消息。通信单元403中可以包括有线协议栈和无线协议栈,分别负责协商处理有线通信和无线通信的协议。
处理单元404是控制中心,可用于处理和控制消息的发送和接收、任务调度等,包括网络的控制面通信和转发面通信,如数据的封装与解封装、流量转发信息的查询等。
如图4B所示,服务器600-1可包括:接入服务411、消息服务412、位置服务413等。
其中,接入服务411用于为本区域内的一个或多个客户端(如终端设备500-1)提供接入以及保持与客户端(如终端设备500-1)之间的长链接,例如服务器600-1通过接入服务411与终端设备500-1通信。接入服务411还用于记录、保存和更新客户端(如终端设备500-1)和所加入频道的关系,每当本区域中有客户端加入或离开频道,接入服务411就记录、保存和更新该客户端和频道的关系。针对本区域中的一个或多个客户端与频道的对应关系,接入服务411可以生成本区域内客户端与频道的对应关系的映射表,并实时更新,方便将来自于消息服务412的消息下发给客户端时查询客户端与频道的对应关系。接入服务411还用于收发与消息服务412之间的消息。
消息服务412负责消息的处理和路由转发服务,即用于收发通信系统400中其他服务器的消息,以及收发本区域中接入服务411的消息。例如服务器600-1的消息服务412与服务器600-2的消息服务422之间可以互相收发消息。例如消息服务412可以通过接入服务411收发本区域中终端设备500-1的消息,消息服务412可以通过接入服务411接收来自于终端设备500-1的消息并且发送给服务器600-2的消息服务422,消息服务412还可以将接收到的来自于服务器600-2的消息服务422的消息通过接入服务411转发给终端设备500-1。
消息服务412还用于在发送来自于本区域内某个客户端的消息之前,可以向位置服务413查询所记录的该客户端所在频道所分布的区域作为指定区域,这样,消息服务412可以根据查询到的区域信息,将该消息发送给指定区域,提高了通信效率,节省了系统资源。例如,服务器600-1中的消息服务412接收到来自于终端设备500-1的消息时,消息服务412根据终端设备500-1所在的频道,向位置服务413查询到该频道的关联区域节点还包括服务器600-2,于是消息服务412向服务器600-2发送该消息,服务器600-2的消息服务422接收到该消息后,再将该消息广播给本区域的接入服务421,之后接入服务421根据频道和客户端关系将该消息下发给终端设备500-3。
位置服务413用于记录、保存和更新频道和区域的关系,供消息服务412查询。其中,位置服务413可以从接入服务411处获取本区域中包括的频道的信息。
如图4B所示,服务器600-2可包括:接入服务421、消息服务422、位置服务423等。
类似的,接入服务421用于为本区域内的一个或多个客户端(如终端设备500-3)提供接入以及保持与客户端(如终端设备500-3)之间的长链接,例如服务器600-2通过接入服务421与终端设备500-3通信。接入服务421还用于记录、保存和更新客户端(如终端设备500-3)和所加入频道的关系,每当本区域中有客户端加入或离开频道,接入服务421就记录、保存和更新该客户端和频道的关系。针对本区域中的一个或多个客户端与频道的对应关系,接入服务421可以生成本区域内客户端与频道的对应关系的映射表,并实时更新,方便将来自于消息服务422的消息下发给客户端时查询客户端与频道的对应关系。接入服务421还用于收发与消息服务422之间的消息。
消息服务422负责消息的处理和路由转发服务,即用于收发通信系统400中其他服务器的消息,以及收发本区域中接入服务421的消息。例如服务器600-2的消息服务422与服务器600-1的消息服务412之间可以互相收发消息。例如消息服务422可以通过接入服务421收发本区域中终端设备500-3的消息,消息服务422可以通过接入服务421接收来自于终端设备500-3的消息并且发送给服务器600-1的消息服务412,消息服务422还可以将接收到的来自于服务器600-1的消息服务412的消息通过接入服务421转发给终端设备500-3。
消息服务422还用于在发送来自于本区域内某个客户端的消息之前,可以向位置服务423查询所记录的该客户端所在频道所分布的区域作为指定区域,这样,消息服务422可以根据查询到的区域信息,将该消息发送给指定区域,提高了通信效率,节省了系统资源。例如,服务器600-2中的消息服务422接收到来自于终端设备500-3的消息时,消息服务422根据终端设备500-3所在的频道,向位置服务423查询到该频道的关联区域节点还包括服务器600-1,于是消息服务422向服务器600-1发送该消息,服务器600-1的消息服务412接收到该消息后,再将该消息广播给本区域的接入服务411,之后接入服务411根据频道和客户端关系将该消息下发给终端设备500-1。
位置服务423用于记录、保存和更新频道和区域的关系,供消息服务422查询。其中,位置服务423可以从接入服务421处获取本区域中包括的频道的信息。
此外,通信系统400中还可以包括同步服务414和弹性负载均衡(elastic loadbalance,ELB)服务415、ELB服务405、ELB服务406等其他服务。其中同步服务414可以用于负责服务器之间的数据同步,如同步服务器600-1的位置服务413与服务器600-2的位置服务423中所更新的频道和区域关系。ELB服务可以负责按照指定的分配策略分发流量,提升系统中的访问效率,如ELB服务405用于协调分发终端设备500-1的通信单元405与服务器600-1的接入服务411之间的流量,ELB服务406用于协调分发终端设备500-3的通信单元403与服务器600-2的接入服务421之间的流量,ELB服务415用于协调分发服务器600-1的消息服务412与服务器600-2的消息服务422之间的流量。
在一个示例中,终端设备500-1与终端设备500-3为同一频道的成员,当终端设备500-1在频道内发送消息时,该消息会经由服务器600-1、服务器600-2发送给同频道的终端设备500-3上,而不是同频道的终端设备所在区域的服务器则不会收到该消息。当终端设备500-1在本区域所在频道内发送一条或多条消息时,处理单元402将消息封装好发送给通信单元401,通信单元401将消息通知发送到本区域的服务器600-1的接入服务411,该消息通知可以包括终端设备500-1所发送的该一条或多条消息及消息发送请求。接入服务411再发送该消息通知到消息服务412,然后消息服务412向位置服务413中查询终端设备500-1所在频道所分布的区域作为指定区域,在本示例中,指定区域包括服务器600-2所属区域。服务器600-1的消息服务412根据查询到的指定区域的信息,将该消息通知发送给服务器600-2的消息服务422。服务器600-2的消息服务422再广播消息通知给本区域中的接入服务421,接入服务421再根据所保存的频道和终端设备500-3的对应关系下发消息通知到终端设备500-3,经过上述过程,终端设备500-3最终接收到同频道终端设备500-1发送的消息。另一方面,服务器600-1的消息服务412可以广播消息通知给本区域中的接入服务411,接入服务411根据所保存的频道和终端设备500-1的对应关系下发消息通知到终端设备500-1,终端设备500-1接收到自己在系统中发送的消息。在一些实施例中,上述该消息通知中可以携带多条消息,并指示是否还有剩余的消息,当最后终端设备500-3接收到该消息通知时,终端设备500-3可以获取到消息列表,如果该消息通知中标识了还有剩余的消息,那么终端设备500-3会向对应的消息服务422发起查询请求,请求将剩余的消息拉取到本地。
可以理解的,关于终端设备500-1、终端设备500-3、服务器600-1、服务器600-2、通信系统400包括的各个功能单元的具体实现可参考本申请其他各实施例中的详细描述,这里不多赘述。
需要注意的是,本申请实施例的通信系统400中不限定客户端、以及服务器中位置服务、消息服务、接入服务、以及同步服务、弹性负载均衡服务的类型、数量和关联关系,在一些实施例中,一个服务器中可以包括一个或多个接入服务、一个或多个消息服务、一个或多个位置服务,一个客户端可以接入一个接入服务,一个接入服务可以服务多个客户端,一个或多个消息服务可以对应一个或多个接入服务,一个通信系统中包括一个或多个同步服务、一个或多个弹性负载均衡服务等。
需要说明的是,本申请实施例中对模块或单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时也可以有另外的划分方式。另外,在实施例中的各功能单元可以集成在一个单元中,也可以是单独物理存在,也可以两个或两个以上单元集成为一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现,或者软硬件结合的形式实现。
下面介绍本申请的实施例提供的终端设备500的结构。
在本申请实施例中,终端设备500可以为可移动的,或者也可以为固定位置的,本实施例不作限定。本申请实施例对终端设备500的具体类型不做限定。示例性的,终端可以是智能手机(mobile phone)、平板电脑(Pad)、个人计算机(personal computer,PC)、台式电脑、便携电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、上网本、游戏机、电子会议白板、智慧屏(智能电视)、无人机、蜂窝电话、个人数字助理(personal digitalassistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备、车机(车载设备)、物联网(internet of things,IOT)设备、以及工业控制(industrial control)中的终端、无人驾驶(selfdriving)中的终端、远程医疗(remote medical)中的终端、智能电网(smartgrid)中的终端、运输安全(transportation safety)中的终端、智慧城市(smart city)中的终端、智慧家庭(smart home)中的终端或者其他类型的电子设备等等。终端设备500可以搭载系统、/>系统、/>系统、/>系统、/>系统(HarmonyOS,HOS)或者其他类型的操作系统,本实施例对此不作限制。结合本文各实施例,终端设备500可以实施为终端102、终端103、终端104、客户端305、客户端315、客户端325、终端500-1、终端500-2、终端500-3、终端500-4、终端500-5、终端500-6、客户端705、客户端715、客户端725、发起者客户端813、与会者客户端814、与会者客户端825、与会者客户端835、第一终端、第二终端、第三终端等。
图5示例性示出了本申请实施例提供的终端设备500的结构。
如图5所示,终端设备500可包括:一个或多个终端设备处理器501、存储器502、通信接口503、接收器505、发射器506、耦合器507、天线508、终端设备接口509。这些部件可通过总线504或者其他方式连接,以通过总线504连接为例。其中:
终端设备处理器501是终端设备500的控制中心,通过各种接口和线路连接终端设备500的各个部分,可用于读取和执行计算机可读指令。具体的,终端设备处理器501可用于调用存储于存储器502中的程序或数据,并执行该程序包含的指令,实现终端设备500的各种功能。在一些实施例中,终端设备处理器501可包括一个或多个处理单元。终端设备处理器501还可以集成应用处理器和调制解调处理器。其中,应用处理器主要用于处理操作系统、用户界面和应用程序等;调制解调处理器主要用于处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到终端设备处理器501中。在一些实施例中,终端设备处理器501还可用于进行无线信道管理、实施呼叫和通信链路的建立和拆除,并为本控制区内的用户提供小区切换控制等。具体的,终端设备处理器501可以包括:管理/通信模块(administration module/communication module,AM/CM)(用于话路交换和信息交换的中心)、基本模块(basic module,BM)(用于完成呼叫处理、信令处理、无线资源管理、无线链路的管理和电路维护功能)、码变换及子复用单元(transcoder and submultiplexer,TCSM)(用于完成复用解复用及码变换功能)等。
存储器502与终端设备处理器501耦合,用于存储各种软件程序和/或多组指令。具体地,存储器502可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器502可以存储操作系统,例如嵌入式操作系统。存储器502还可以存储网络通信程序,该网络通信程序可用于与一个或多个附加设备,一个或多个终端设备,一个或多个网络设备进行通信。存储器502还可以存储终端设备接口程序,该终端设备接口程序可以通过图形化的操作界面将应用程序的内容形象逼真的显示出来,并通过菜单、对话框以及按键等输入控件接收终端设备对应用程序的控制操作。在本申请的一些实施例中,存储器502可用于存储本申请的一个或多个实施例提供的方法在终端设备500侧的实现程序。
终端设备500可以包括移动通信模块和无线通信模块等。
移动通信模块可以提供应用在终端设备500上的包括诸如2G/3G/4G/5G等无线通信的解决方案。移动通信模块可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块可以由天线508接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块还可以对经调制解调处理器调制后的信号放大,经天线508转为电磁波辐射出去。
终端设备500中可以设有用户身份识别模块(subscriber identificationmodule,SIM)卡接口,SIM卡接口用于连接SIM卡。SIM卡是数字蜂窝移动设备的用户识别卡,用于移动通信,SIM卡内部存储了数字移动设备的用户信息、加密密钥等内容,可供移动网络对用户的身份进行鉴别,并对用户的信息进行加密。SIM卡可以通过插入SIM卡接口,或从SIM卡接口拔出,实现和终端设备500的接触和分离。终端设备500可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口也可以兼容不同类型的SIM卡。SIM卡接口也可以兼容外部存储卡。终端设备500通过SIM卡和网络交互,实现通话以及数据通信等功能。
无线通信模块可以提供应用在终端设备500上的包括无线局域网(wirelesslocal area networks,WLAN)(如Wi-Fi网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块经由天线508接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器。无线通信模块还可以从处理器接收待发送的信号,对其进行调频,放大,经天线508转为电磁波辐射出去。
在一些实施例中,终端设备500的一个或多个天线508分别和移动通信模块、无线通信模块耦合,使得终端设备500可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
在一些实施例中,无线通信模块可以包括Wi-Fi模块,用于为终端设备500提供遵循Wi-Fi相关标准协议的网络接入。终端设备500可以通过Wi-Fi模块接入到无线接入点(AP);或者,包含Wi-Fi模块的终端设备500也可以作为AP,为其它电子设备提供Wi-Fi网络接入。可以理解的是,Wi-Fi相关标准协议可以包括IEEE 802.11ac、IEEE 802.11b、IEEE802.11g/a和/或IEEE 802.11n等。Wi-Fi模块可以工作在5GHz频段或2.4GHz频段。其中,5GHz频段的Wi-Fi模块可以提供相对于2.4GHz频段更高的无线传输速度。
通信接口503可用于终端设备500与其他通信设备,例如服务器。具体地,通信接口503可以是长期演进(LTE)(4G)通信接口,或5G通信接口,也可以是未来新空口(new radio,NR)的通信接口。不限于无线通信接口,终端设备500还可以配置有有线的通信接口503,例如局域接入网(local access network,LAN)接口来支持有线通信,如光纤通信。发射器506可用于对终端设备处理器501输出的信号进行发射处理。接收器505可用于对天线508接收的移动通信信号进行接收处理。
在本申请的一些实施例中,发射器506和接收器505可看作一个无线调制解调器。在终端设备500中,发射器506和接收器505的数量均可以是一个或者多个。天线508可用于将传输线中的电磁能转换成自由空间中的电磁波,或者将自由空间中的电磁波转换成传输线中的电磁能。耦合器507用于将天线508接收到的移动通信信号分成多路,分配给多个接收器505。终端设备500中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如,可以将用于移动通信的天线复用为无线局域网的分集天线。在另外一些实施例中,天线508可以和调谐开关结合使用。
终端设备500还可包括输入输出模块。输入输出模块可用于实现终端设备500和其他终端设备/外部环境之间的交互,可主要包括音频输入输出模块、按键输入模块以及显示器等。具体地,输入输出模块还可包括:摄像头、触摸屏以及传感器等等。其中,输入输出模块均通过终端设备接口509与终端设备处理器501进行通信。
需要说明的是,图5所示的终端设备500仅仅是本申请实施例的一种实现方式,实际应用中,终端设备500还可以包括更多或更少的部件,可以组合两个或多个的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合实现,在此不作限定。
下面介绍本申请的实施例提供的服务器600的结构。
本申请实施例对服务器600的具体类型不做限定。结合本文各实施例,服务器600可以实施为区域节点108、区域节点109、区域节点110、区域节点301、区域节点311、区域节点321、服务器600-1、服务器600-2、服务器600-3、区域节点701、区域节点711、区域节点721、区域节点801、区域节点821、区域节点831、第一服务器、第二服务器等。
图6示例性示出了本申请实施例提供的服务器600的结构。
如图6所示,服务器600可包括:处理器610、通信接口620、存储器630和总线640。处理器610、通信接口620、存储器630之间可以通过总线640相互连接并通信。
处理器610可以由一个或者多个通用处理器构成,例如中央处理器(centralprocessing unit,CPU)或者CPU和硬件芯片的组合、图形处理器GPU、微处理器MP或者数字信号处理器DSP等处理器中的任意一种或多种。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
通信接口620用于与其他设备或通信网络的通信,如以太网,无线接入网(RAN),核心网,WLAN等。具体地,通信接口620可以向终端设备500或其他服务器发送消息、数据或指令,或者是接收终端设备500或其他服务器的消息、数据或指令等等。
存储器630可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器630还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)。存储器630还可以包括上述种类的组合。
存储器630中存储有可执行的程序代码,处理器630执行该可执行的程序代码以执行本申请实施例提供的消息发送方法和功能。存储器630还可以缓存数据,供处理器610调用,以实现本申请实施例提供的消息发送方法和功能。
总线640可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线640可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
需要说明的是,图6所示的服务器600仅仅是本申请实施例的一种实现方式,实际应用中,服务器600还可以包括更多或更少的部件,可以组合两个或多个的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合实现,在此不作限定。
下面结合图7介绍本申请提供的消息发送方法。在该消息发送方法中,可以通过在各区域节点中引入位置服务,根据客户端接入的区域(也即区域节点)以及客户端加入频道的动作,将客户端与对应频道、对应区域(也即区域节点)的信息同步给位置服务,构建每个客户端与加入频道、分布区域(也即区域节点)的关系数据。从而使得任一区域节点将本区域中客户端的消息发送给其他区域之前,先确定与该客户端所属频道分布在哪些区域,也即哪些区域包含相同频道的客户端,然后再将消息精确下发到指定的包含同频道客户端的区域,而不需广播到所有区域中。此外,还可以在各区域节点的接入服务的内存中,保存用户客户端和频道的关系,因此不用使用频道服务来查询频道成员列表,而是直接由接入服务根据频道和客户端的对应关系而向不同客户端下发对应频道的消息,这减少了由于服务之间的调用而产生的网络延迟,极大提升了大量消息下发的速率。
参考图7,图7示出了本申请一些实施例提供的即时消息系统700的消息流转图。
即时消息系统700可以为群聊天、直播、网络会议、网络教学、网络研讨会、网络发布会等。即时消息系统700可实现为通信系统400,客户端705、客户端715、客户端725可实现为终端设备500,区域节点701、区域节点711、区域节点721可实现为服务器600。结合图1,在一个示例中,即时消息系统700可实施为应用场景100中的网络会议101,客户端705、客户端715、客户端725可实施为应用场景100中的终端102、终端103、终端104(不限制顺序),区域节点701、区域节点711、区域节点721可实施为应用场景100中的区域节点108、区域节点109、区域节点110(不限制顺序)。
在本申请实施例中,即时消息系统700中包括一个或多个客户端(或称用户),分布在一个或多个区域中,即时消息系统700中包括多个区域节点,一个区域节点可以对应一个或多个区域,该区域节点可以为其对应区域中的一个或多个客户端提供功能和服务。在本实施例中,区域节点可以实现为一个服务器,也可以实现为多个服务器组成的服务器集群,本申请实施例对此不作限制。在同一个频道中,任一客户端发消息都可同步给其他区域中同频道的客户端。每个区域的区域节点(或称服务器节点)可以包括位置服务、消息服务、接入服务等,任一用户客户端在所在频道里发消息,可以通过本区域的接入服务将消息的传送给本区域的消息服务,本区域的消息服务查询位置服务中所记录的频道和区域节点的关系,再将该消息转发给即时消息系统中同频道的指定区域节点。指定区域节点的消息服务收到该消息后,将该消息广播给本区域的所有接入服务,每个接入服务中保存有其服务的客户端和频道的关系,接入服务再根据查询到的频道和客户端的关系,将该消息下发给该频道对应的客户端。
其中,位置服务用于记录、保存和更新频道和区域节点的关系,供消息服务查询;消息服务用于收发系统中其他区域节点的消息,以及收发本区域节点中接入服务的消息;接入服务用于接入本区域内的客户端以及保持与客户端之间的长链接,接入服务还用于记录、保存和更新客户端和频道的关系。需要注意的是,本申请实施例中不限定一个区域节点中位置服务、消息服务、接入服务、客户端的类型、数量和关联关系,在一些实施例中,一个区域节点中可以包括一个或多个接入服务、一个或多个消息服务、一个或多个位置服务,一个客户端可以接入一个接入服务,一个接入服务可以服务多个客户端,一个或多个消息服务可以对应一个或多个接入服务等。
如图7所示,即时消息系统700中包括客户端705、客户端715、客户端725以及对应区域的区域节点701、区域节点711、区域节点721。假设客户端705位于区域A,客户端715位于区域B,客户端725位于区域C,区域A、区域B、区域C为不同的区域,区域A的服务器节点为区域节点701,区域B的服务器节点为区域节点711,区域C的服务器节点为区域节点721。
客户端705通过接入区域节点701来加入即时消息系统700,客户端715通过接入区域节点711来加入即时消息系统700,客户端725通过接入区域节点721来加入即时消息系统700。其中,区域节点701包括接入服务702、消息服务703、位置服务704等,区域节点711包括接入服务712、消息服务713、位置服务714等,区域节点721包括接入服务722、消息服务723、位置服务724等。
其中,各个区域节点中的位置服务用于记录、保存和更新频道和区域节点的关系,供消息服务查询。消息服务在发送来自于某个客户端的消息之前,可以查询位置服务中所记录的该客户端所在频道中其他客户端所分布的区域节点作为指定区域节点,这样,消息服务可以根据查询到的区域节点信息,将该消息发送给指定区域节点,提高了通信效率,节省了系统资源。例如,区域节点711中的消息服务713接收到来自于客户端715的消息时,消息服务713根据客户端715所在的频道A向位置服务714查询到频道A关联区域节点还包括区域节点721,于是消息服务713向区域节点721发送该消息,区域节点721的消息服务723接收到该消息后,再将该消息广播给本区域的接入服务722,之后接入服务722根据频道和客户端关系将该消息下发给客户端725。
在一个示例中,位置服务中所保存的频道与区域的关系的映射表结构可以如下面表一所示。表一中示出了频道身份识别号(identity document,ID)与区域ID的对应关系的示例,如频道ID 1000000对应区域ID Region-0001和Region-0002,频道ID 1000001对应区域ID Region-0001和Region-0003。即一个频道可以分布在多个区域上,一个区域中可以存在多个频道,本实施例对频道和区域的关系不作限制。在一些实施例中,每个区域和其区域节点是一一对应的关系,因此频道与区域的对应关系,也即频道与区域节点的对应关系。
表一
频道ID | 区域ID |
1000000 | Region-0001 |
1000000 | Region-0002 |
1000001 | Region-0001 |
1000001 | Region-0003 |
各个区域节点中的消息服务负责消息的处理和路由转发服务,即用于收发即时消息系统700中其他区域节点的消息,以及收发本区域中接入服务的消息。例如消息服务703、消息服务713、消息服务723之间可以互相收发消息。例如消息服务713可以通过接入服务712收发对应区域中客户端的消息,消息服务713可以通过接入服务712接收来自于客户端715的消息并且发送给其他区域节点,消息服务713还可以将接收到的来自于其他区域的消息通过接入服务712转发给客户端715。
各个区域节点中的接入服务用于为本区域内的一个或多个客户端提供接入以及保持与客户端之间的长链接,例如客户端705通过接入服务702接入区域节点701,客户端715通过接入服务712接入区域节点711,客户端725通过接入服务722接入区域节点721。接入服务还用于记录、保存和更新客户端和频道的关系,每当有客户端加入或离开频道,接入服务就记录、保存和更新该客户端和频道的关系。针对即时消息系统700中的一个或多个客户端与频道的对应关系,每个区域节点中的接入服务可以生成客户端与频道的映射表,并实时更新,方便将来自于消息服务的消息下发给客户端时查询客户端与频道的对应关系。
在一个示例中,接入服务中所保存的频道与客户端的关系的映射表结构可以如下面表二所示。表二中示出了频道ID与客户端ID的对应关系的示例,如频道ID 1000000对应客户端ID User-0001和User-0002,频道ID 1000001对应客户端ID User-0003和User-0004。即每个客户端可以加入一个频道,一个频道中可以包括多个客户端,本实施例对频道和客户端的关系不作限制。
表二
频道ID | 客户端ID |
1000000 | User-0001 |
1000000 | User-0002 |
1000001 | User-0003 |
1000001 | User-0004 |
根据上述位置服务中的频道与区域的关系映射表以及接入服务中的频道与客户端的关系映射表,就可以组合得到多组客户端—频道—区域的对应关系。
此外,不限于以上所描述的位置服务(器)、消息服务(器)和接入服务(器),即时消息系统700中还可以包括同步服务(未示出)和弹性负载均衡(elastic load balance,ELB)服务(未示出)等其他服务。其中同步服务(器)可以负责区域之间的数据同步,如同步各个区域节点中位置服务所更新的频道和区域关系。ELB服务(器)可以负责按照指定的分配策略分发流量,提升系统中的访问效率。
在本实施例中,客户端715与客户端725为同一频道中的成员,客户端705与客户端715不在同一频道。例如,客户端715和客户端725所在频道为频道A,客户端705所在频道为频道B。当客户端715在所在的频道A内发送消息时,该消息会传递给频道A的所有客户端,包括客户端715和客户端725。
其中,每个客户端在本区域加入一个系统频道时,该加入频道的请求会发送到本区域的接入服务,接入服务会记录客户端和所加入频道的对应关系数据,生成客户端与频道的对应关系映射表。同时,接入服务可以将当前客户端登录的频道信息发送给本区域节点的位置服务,位置服务记录、保存和更新频道和区域节点(即区域)的关联关系,如果频道和区域节点的关系数据有更新,包括新增、删除、变更等,一个区域节点的位置服务可以将该频道和区域节点的关系数据及时同步给其他区域节点的位置服务。
如图7所示,客户端715在加入频道A时,会将731加入频道A的请求发送给对应区域节点711中的接入服务712,接入服务712可以记录该客户端715加入频道A的信息,并生成客户端715和频道A的对应关系的列表数据,即接入服务712可以732保存客户端715和频道A的对应关系,然后接入服务712可以将频道A的信息发送给本区域节点711的位置服务714,位置服务714可以733记录频道A和所在区域节点711的对应关系。同样地,客户端725在加入频道A时,会将734加入频道A的请求发送给对应区域节点721中的接入服务722,接入服务722可以记录该客户端725加入频道A的信息,并生成客户端725和频道A的对应关系的列表数据,即接入服务722可以735保存客户端725和频道A的对应关系,然后接入服务722可以将频道A的信息发送给本区域节点721的位置服务724,位置服务724可以736记录频道A和所在节点721的对应关系。还有,客户端705在加入频道B时,会将737加入频道B的请求发送给对应区域节点701中的接入服务702,接入服务702可以记录该客户端705加入频道B的信息,并生成客户端705和频道B的对应关系的列表数据,即接入服务702可以738保存客户端705和频道B的对应关系,然后接入服务702可以将频道B的信息发送给本区域节点701的位置服务704,位置服务704可以739记录频道B和所在区域节点701的对应关系。当检测到频道与客户端、频道与区域节点的关系数据有更新,包括新增、删除、变更等,比如客户端更换频道、客户端下线、客户端上线等情况,对应区域节点的接入服务和位置服务会及时更新频道与客户端、频道与区域节点的关系列表数据。
区域节点701的位置服务704、区域节点711的位置服务714、区域节点721的位置服务721之间可以740同步位置信息,该位置信息即指的是即时通信系统700中存在的一项或多项频道与区域节点的对应关系信息。在本示例中,各个区域节点的位置服务可获知的频道与区域节点的关系包括:频道A对应区域节点711和区域节点721,频道B对应区域节点701等。
具体地消息流转示例如图7所示,当客户端715在本区域所在频道A内发送一条或多条消息时,客户端715先741发送消息通知到接入服务712,该消息通知包括客户端715所发送的该一条或多条消息及消息发送请求。接入服务712再742发送该消息通知到消息服务713,然后消息服务713向位置服务714中743查询客户端715所在的频道A所对应的区域节点作为指定区域节点,即频道A中所有客户端分布的区域节点,在本示例中,频道A对应区域节点711和区域节点721。消息服务713根据查询到的指定区域节点信息,即区域节点711和区域节点721,将该消息通知发送给指定区域节点的消息服务。一方面,区域节点711的消息服务713可以744广播消息通知给本区域中所有的接入服务712,接入服务712再745根据所保存的频道A和客户端715的对应关系下发消息通知到客户端715,客户端715接收到自己在系统中发送的消息。同时,区域节点711的消息服务713可以746将消息通知转发给区域节点721的消息服务722,消息服务722再747广播消息通知给本区域中所有的接入服务722,接入服务722再748根据所保存的频道A和客户端725的对应关系下发消息通知到客户端725,经过上述过程,客户端725最终接收到同频道客户端715发送的消息。由于频道A与区域节点701并不存在对应的关联关系,所以区域节点711的消息服务713不会向区域节点701的消息服务703发送来自于客户端715的消息。在一些实施例中,上述该消息通知中可以携带多条消息,并指示是否还有剩余的消息,当最后客户端接收到该消息通知时,客户端可以获取到消息列表,如果该消息通知中标识了还有剩余的消息,那么客户端会向对应的消息服务发起查询请求,请求将剩余的消息拉取到本地客户端。
需要说明的是,图7示出的实施例是本申请提供的一种实现方式,仅仅是为了更加清楚的说明本申请的技术方案,并不对本申请的其他实施例构成限定。在其他实施例中还可以包括更多或更少的客户端和区域节点,更多或更少的服务功能,这里不作限制。本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请提供的技术方案对于解决类似的技术问题,同样适用。
下面介绍本申请的实施例提供的云会议系统800的消息逻辑交互图。
本实施例是以云会议系统800作为示例描述其消息逻辑交互。参考图8所示,云会议系统800中包括区域节点801、区域节点821、区域节点831以及发起者客户端813、与会者客户端814、与会者客户端825、与会者客户端835等。其中,发起者客户端813和与会者客户端814通过统一网关812接入区域节点801,与会者客户端825通过统一网关824接入区域节点821,与会者客户端835通过统一网关834接入区域节点831。统一网关是各个客户端与对应区域节点之间连接通信的桥梁。区域节点801、区域节点821、区域节点831分管不同区域的消息处理、转发等。
区域节点801中包括会议系统802和消息系统805等,会议系统802包括会管系统803和会控系统804等,消息系统805包括位置服务806、频道服务807、消息服务808、同步服务809、配置服务810、接入服务811等。其中,会管系统803用于管理云会议系统、统筹任务调度等,例如创建会议消息频道、邀请会议成员、允许/禁止会议成员的加入等。会控系统804用于控制云会议系统,例如云会议系统的创建、解散等。
位置服务806用于记录、保存和更新频道和区域的关系,供消息服务808在发送消息之前查询,以确定需要发送消息的区域。位置服务806可以从接入服务811处获取本区域中包括的频道的信息。频道服务807用于管理消息频道。消息服务808用于负责消息的处理和路由转发服务,即用于收发云会议系统800中其他区域节点的消息,以及收发本区域节点801中接入服务811的消息。消息服务808还用于在发送来自于本区域内某个客户端的消息之前,向位置服务806查询所记录的该客户端所在频道所分布的区域作为指定区域,这样,消息服务808可以根据查询到的区域信息,将该消息发送给指定区域,提高了通信效率,节省了系统资源。同步服务809用于负责各区域节点之间的数据同步,如同步位置服务806中所更新的频道和区域关系。配置服务810用于配置消息系统805中的各项参数等。接入服务811用于为本区域内的一个或多个客户端(如发起者客户端813和与会者客户端814)提供接入以及保持与客户端之间的长链接。接入服务811还用于记录、保存和更新客户端(如发起者客户端813和与会者客户端814)和所加入频道的关系,每当本区域中有客户端加入或离开频道,接入服务811就记录、保存和更新该客户端和频道的关系。针对本区域中的一个或多个客户端与频道的对应关系,接入服务811可以生成本区域内客户端与频道的对应关系的映射表,并实时更新,方便将来自于消息服务808的消息下发给客户端时查询客户端与频道的对应关系。接入服务811还用于收发与消息服务808之间的消息。更多的功能描述可以结合参考前述实施例中的描述,这里不再赘述。
相似的,区域节点821中包括会议系统822和消息系统823等,区域节点831中包括会议系统832和消息系统833等,会议系统822和会议系统832中也分别包括会管系统和会控系统等,消息系统823和消息系统833中也分别包括位置服务、频道服务、消息服务、同步服务、配置服务、接入服务等,其功能参考对区域节点801的描述,这里不再赘述。
在一个示例中,发起者客户端813和与会者客户端814接入区域节点801,发起者客户端813在841发起会议之后,响应于接收到发起者客户端813发起会议的通知,会议系统802去842创建会议频道,并通知消息系统805。发起者客户端813在创建该频道之后,会向消息系统805中844上报频道,消息系统805可以记录发起者客户端813与其加入的频道,并且同步服务809可以将位置服务806中所保存的频道与区域的关系数据列表848同步给其他区域节点的位置服务。经由区域节点801,发起者客户端813向与会者客户端814发起843邀请入会,响应于邀请与会者客户端814在加入该频道之后,会向消息系统805中845上报频道,消息系统805可以记录与会者客户端814与其加入的频道。之后,一个客户端在发消息时,同频道的客户端都会接收到该消息。发起者客户端813通过区域节点801、经由统一网关812来846收发消息,与会者客户端814通过区域节点801、经由统一网关812来847收发消息。区域节点801中的消息服务808接收到来自于发起者客户端813的消息时,消息服务808根据发起者客户端813所在的频道,向位置服务806查询该频道的关联区域节点还包括哪些,然后消息服务808可以向这些关联区域节点848转发消息,其他区域节点的消息服务接收到该消息后,再将该消息广播给本区域节点的接入服务,之后接入服务根据频道和客户端的对应关系将该消息下发给区域中的客户端。
图8示出的实施例是本申请提供的一种实现方式,仅仅是为了更加清楚的说明本申请的技术方案,并不对本申请的其他实施例构成限定。
结合图8,下面介绍本申请的实施例提供的云会议系统的消息时序流程900。图9为消息时序流程900的示意图。
参考图9,云会议系统的消息时序流程900可以包括以下流程步骤,不限于图9所示的流程步骤,消息时序流程900可以包括更少或更多的流程步骤,并且本实施例中对所包括的流程步骤的实施顺序不作任何限定。
云会议系统可以支持多个用户在视频通讯的同时收发聊天消息。在本实施例中的云会议系统中,包括发起者客户端、一个或多个与会者客户端、一个或多个区域节点,其中区域节点中包括会管系统和消息系统,消息系统包括接入服务、消息服务、频道服务、位置服务等。其中,会管系统可以用于管理云会议系统、统筹任务调度等,例如创建会议消息频道、邀请会议成员、允许/禁止会议成员的加入等。接入服务用于为本区域内的一个或多个客户端(如发起者客户端和与会者客户端)提供接入以及保持与客户端之间的长链接。接入服务还用于记录、保存和更新客户端(如发起者客户端和与会者客户端)和所加入频道的关系,每当本区域中有客户端加入或离开频道,接入服务就记录、保存和更新该客户端和频道的关系。针对本区域中的一个或多个客户端与频道的对应关系,接入服务可以生成本区域内客户端与频道的对应关系的映射表,并实时更新,方便将来自于消息服务的消息下发给客户端时查询客户端与频道的对应关系。接入服务还用于收发与消息服务之间的消息。消息服务用于负责消息的处理和路由转发服务,即用于收发云会议系统中其他区域节点的消息,以及收发本区域节点中接入服务的消息。消息服务还用于在发送来自于本区域内某个客户端的消息之前,向位置服务查询所记录的该客户端所在频道所分布的区域作为指定区域,这样,消息服务可以根据查询到的区域信息,将该消息发送给指定区域,提高了通信效率,节省了系统资源。频道服务用于管理消息频道。位置服务用于记录、保存和更新频道和区域的关系,供消息服务在发送消息之前查询,以确定需要发送消息的区域。位置服务可以从接入服务处获取本区域中包括的频道的信息。更多的功能描述可以结合参考前述实施例中的描述,这里不再赘述。
901,发起者客户端向会管系统发起创建会议的请求。
响应于发起者客户端的发起创建会议的请求,会管系统创建会议。
902,会管系统创建会议消息频道。
会管系统通过调用消息系统的频道服务的接口,创建消息频道。
903,会管系统加入会议成员。
根据发起者客户端拉取成员的数据,会管系统将这些会议成员加入该消息频道中,由频道服务管理多个消息频道。
904,会管系统向与会者客户端下发会议通知。
会管系统将邀请入会的请求发送到各个与会成员的终端。
905,与会者客户端加入会议。
响应于接收邀请,与会者客户端进入会议。
906,与会者客户端向接入服务上报加入的会议消息频道。
入会的同时,客户端上报当前加入的会议信息给消息系统。
907,接入服务记录客户端与频道的关系。
消息系统的接入服务器构建会议消息频道和客户端的对应关系数据
908,接入服务向位置服务上报频道与客户端登录的区域的关系。
接入服务将客户端加入的频道和所在区域信息发给位置服务。
909,位置服务同步频道分布的区域信息。
位置服务将会议频道和区域的关系数据通过同步服务,同步到其他区域。同步完成后,就构建起了会议频道的区域分布数据。
910,与会者客户端在会议中发送消息。
该消息先到达消息系统的接入服务。
911,接入服务向消息服务发送消息。
912,消息服务在本区域广播消息。
913,消息服务在本区域向接入服务广播下发消息。
消息服务给本区域的所有接入服务广播这条消息。
914,接入服务查询当前会议频道的客户端列表。
接入服务根据频道和客户端的关系数据,将消息发送给客户端。
915,接入服务向与会者客户端下发消息通知并携带N条消息。
916,与会者客户端根据消息通知中的标识判断是否还有剩余消息。
客户端收到消息通知,获取到消息列表,并检查通知中标识是否还有剩余的消息,如有,则向消息服务器发起查询请求,将剩余的消息拉取到本地。
917,如果判断有剩余消息,那么与会者客户端向消息服务拉取剩余消息。
918,响应于拉取剩余消息的请求,消息服务向与会者客户端返回剩余消息。
919,消息服务向位置服务查询与会成员分布的区域。
920,位置服务向消息服务返回与会成员分布区域的查询结果。
在消息服务向本区域的接入服务广播下发消息的同时,消息服务从位置服务获得这个会议频道分布的区域,并将消息转发给这些区域。
921,消息服务转发消息到其他指定区域的消息服务。
消息服务根据查询结果,将发送者同频道对应的区域作为指定区域。
922,每个指定区域的消息服务在本区域广播下发消息给与会者客户端。
参考913—918。每个区域的消息服务器将消息广播给本区域的所有接入服务器,接入服务根据所保存的这个频道的成员列表信息,将消息通知发送给属于该频道的这些客户端,通知中携带N条消息,并表示是否还有剩余的消息,如有,则向消息服务器发起查询请求,将剩余的消息拉取到本地。
以上实施例仅仅是为了更加清楚的说明本申请的技术方案,并不构成对本申请的限定。在其他实施例中还可以包括更多或更少的流程或步骤,或者各实施例进行组合或拆分,得到更多的实现方式,本申请实施例对此不作限制。
下面介绍本申请的实施例提供的消息发送方法的方法流程图1000。
本申请的实施例提出了一种针对跨区域跨云的即时消息系统的消息发送方法,用于解决在即时消息系统中,尤其是海量用户的应用场景下,无差别广播消息导致的系统资源浪费的问题,以及下行消息发送效率低下的问题。在该消息发送方法中,可以通过在各区域的区域节点中引入位置服务,根据客户端接入的区域节点以及客户端加入频道的动作,将客户端与对应频道、对应区域节点的信息同步给位置服务,构建每个客户端与加入频道、分布区域节点的关系数据。从而使得任一区域节点将本区域中客户端的消息发送给其他区域节点之前,先确定该客户端所属频道分布在哪些区域,也即哪些区域包含相同频道的客户端,然后再将消息精确下发到指定的包含同频道客户端的区域节点,而不需广播给所有区域节点。此外,还可以在各区域节点的接入服务的内存中,保存客户端和频道的关系,因此不用使用频道服务来查询频道成员列表,而是直接由接入服务根据频道和客户端的对应关系而向不同客户端下发对应频道的消息,这减少了由于服务之间的调用而产生的网络延迟,极大提升了大量消息下发的速率。
该消息发送方法的方法流程图1000可以包括以下流程,本实施例中对以下流程的实施顺序不作任何限定。
1001,第一终端向第一服务器上报加入第一频道。
其中,第一终端、第一服务器、第二终端、第二服务器属于同一通信系统,第一终端位于第一区域,第一服务器为第一区域的服务器节点,第二终端位于第二区域,第二服务器为第二区域的服务器节点。
更具体的,第一服务器包括第一接入服务、第一消息服务、第一位置服务、第一同步服务,第二服务器包括第二接入服务、第二消息服务、第二位置服务、第二同步服务。
1002,第一服务器保存第一终端与第一频道的对应关系。
响应于第一终端加入第一频道,第一接入服务保存第一频道与第一终端的对应关系。
1003,第一服务器保存第一频道与第一区域的对应关系。
第一位置服务保存有第一频道与第一区域的对应关系。第一位置服务从第一接入服务获取到第一频道与第一区域的对应关系。
1004,第二终端向第二服务器上报加入第一频道。
1005,第二服务器保存第二终端与第一频道的对应关系。
响应于第二终端加入第一频道,第二接入服务保存第一频道与第二终端的对应关系。
1006,第二服务器保存第一频道与第二区域的对应关系。
第二位置服务保存有第一频道与第二区域的对应关系。第二位置服务从第二接入服务获取到第一频道与第二区域的对应关系。
1007,第一服务器与第二服务器之间同步频道与区域的对应信息。
各个区域的服务器节点在检测到频道与区域的对应信息发生变更时,会及时同步给其他各个区域的位置服务。具体的,第一同步服务将第一频道与第一区域的对应关系同步给第二位置服务。第二同步服务将第一频道与第二区域的对应关系同步给第一位置服务。
1008,第一终端向第一服务器发送消息。
第一终端向第一接入服务发送消息。第一接入服务向第一消息服务发送消息。
1009,第一服务器查询频道与区域的对应信息,确定第一频道与第二区域存在对应关系。
第一消息服务向第一位置服务查询频道与区域的对应信息。
1010,第一服务器向第二服务器发送该消息。
根据第一位置服务所保存的第一频道与第二区域的对应关系,第一消息服务向第二消息服务发送消息。
1011,第二服务器在本区域内广播消息。
第二消息服务向第二接入服务广播消息。
1012,第二服务器根据第二终端与第一频道的对应关系,向第二终端下发该消息。
根据第二接入服务所保存的第一频道与第二终端的对应关系,第二接入服务向第二终端发送消息。
1013,第一服务器在本区域内广播消息。
在1010第一服务器向第二服务器发送消息的同时,根据第一位置服务所保存的第一频道与第一区域的对应关系,第一消息服务向第一接入服务广播消息。
1014,第一服务器根据第一终端与第一频道的对应关系,向第一终端下发该消息。
根据第一接入服务所保存的第一频道与第一终端的对应关系,第一接入服务向第一终端发送消息。
在一些实施例中,通信系统还包括第三终端和第三服务器,第三终端位于第三区域,第三服务器为第三区域的服务器节点,第三终端加入的频道为第二频道,第三服务器保存有第二频道与第三区域的对应关系。第三服务器将第二频道与第三区域的对应关系同步给第一服务器。响应于未查询到第一频道与第三区域存在对应关系,第一服务器确定不向第三服务器发送消息。
以上描述的第一终端、第二终端、第三终端可以实现为前述实施例中的终端设备、客户端等,第一服务器、第二服务器可以实现为前述实施例中的区域节点、服务器等,更详细的功能实现描述可以结合前述实施例,这里不再赘述。
以上实施例仅仅是为了更加清楚的说明本申请的技术方案,并不构成对本申请的限定。在其他实施例中还可以包括更多或更少的流程或步骤,或者各实施例进行组合或拆分,得到更多的实现方式,本申请实施例对此不作限制。
结合前述各个实施例可以看出,本申请的实施例可以通过在各区域的区域节点中引入位置服务,根据客户端接入的区域节点以及客户端加入频道的动作,将客户端与对应频道、对应区域节点的信息同步给位置服务,构建每个客户端与加入频道、分布区域节点的关系数据。从而使得任一区域节点将本区域中客户端的消息或指令发送给其他区域节点之前,先确定该客户端所属频道分布在哪些区域,也即哪些区域包含相同频道的客户端,然后再将消息精确下发到指定的包含同频道客户端的区域节点,而不需广播给所有区域节点。这样可以减少无效的区域间的消息转发,降低带宽和服务器资源的消耗。
此外,还可以在各区域节点的接入服务的内存中,保存客户端和频道的关系,因此不用使用频道服务来查询频道成员列表,而是直接由接入服务根据频道和客户端的对应关系而向不同客户端下发对应频道的消息,这减少了由于服务之间的调用而产生的网络延迟,极大提升了大量消息下发的速率。尤其是用于解决在海量用户的应用场景下,无差别广播消息导致的系统资源消耗大的问题,以及下行消息发送效率低下的问题。本申请实施例中通过接入服务保存客户端和频道的关系数据,可以快速地将消息广播下去,效率高,延迟低,资源消耗少。而且,消息下发采用推拉结合的方式,在低频消息发送和大量消息发送的场景下,消息发送效率都较佳。
可以理解的是,通过实施本申请各个实施例及其结合实施例提供的消息发送方法,可以精确地将消息转发给指定的区域,减少无效的消息广播,提高消息转发的效率,降低系统资源的消耗。还可以将接入功能和查询功能合并由同一个服务提供,减少了由于服务之间的调用而产生的网络延迟,降低了消息传输的耗费时间,提高了消息下发的速率,节省了通信资源。
本申请的实施例还提供了一种芯片,该芯片可以包括输入接口、输出接口和处理电路。在本公开的实施例中,可以由输入接口和输出接口完成信令或数据的交互,由处理电路完成信令或数据信息的生成以及处理。
本申请的实施例还提供了一种芯片系统,包括处理器,用于支持计算设备以实现上述任一实施例中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,用于存储必要的程序指令和数据,当处理器运行该程序指令时,使得安装该芯片系统的设备实现上述任一实施例中所涉及的方法。示例性地,该芯片系统可以由一个或多个芯片构成,也可以包含芯片和其他分立器件。
本申请的实施例还提供了一种处理器,用于与存储器耦合,存储器存储有指令,当处理器运行所述指令时,使得处理器执行上述任一实施例中涉及的方法和功能。
本申请的实施例还提供了一种计算机可读存储介质,其上存储有计算机指令或程序代码,当处理器运行所述指令或所述程序代码时,使得处理器执行上述任一实施例中涉及的方法和功能。计算机可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。计算机可读存储介质的更详细示例包括带有一根或多根导线的电气连接、磁性介质(例如,磁盘、软盘、硬盘、磁带、磁存储设备)、光介质(例如光存储设备、DVD)、半导体介质(例如固态硬盘)、随机存储存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存),或其任意合适的组合等。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。本申请的实施例还提供了有形地存储在非暂时性计算机可读存储介质上的至少一个计算机程序产品。该计算机程序产品包括一个或多个计算机可执行指令,例如包括在程序模块中的指令,其在目标的真实或虚拟处理器上的设备中执行,以执行上述各实施例中任一实施例中涉及的过程、方法和功能。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。
根据本申请实施例提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行上述实施例中的过程、方法和功能。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。在各种实施例中,可以根据需要在程序模块之间组合或分割程序模块的功能。用于程序模块的机器可执行指令可以在本地或分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质中。
用于实现本公开的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。在本公开的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括信号、计算机可读介质、等等。信号的示例可以包括电、光、无线电、声音或其它形式的传播信号,诸如载波、红外信号等。
通常,本申请的各种实施例可以以硬件或专用电路、软件、逻辑或其任何组合来实现。一些方面可以用硬件实现,而其他方面可以用固件或软件实现,其可以由控制器,微处理器或其他计算设备执行。虽然本公开的实施例的各个方面被示出并描述为框图,流程图或使用一些其他图示表示,但是应当理解,本文描述的框,装置、系统、技术或方法可以实现为,如非限制性示例,硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某种组合。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在很好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各个实现方式。
以上的具体实施方式,对本申请实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本申请实施例的具体实施方式而已,并不用于限定本申请实施例的保护范围,凡在本申请实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请实施例的保护范围之内。
应注意的是,尽管上面分别结合附图描述了本申请的实施例,但是上面的实施例并不是彼此独立的,它们也可以结合以得到其他的实施例。本申请的实施例中的方式、情况、类别以及实施例的划分仅是为了描述的方便,不应构成特别的限定,各种方式、类别、情况以及实施例中的特征在符合逻辑的情况下,可以相互结合。本申请的各实施方式可以任意进行组合,以实现不同的技术效果。本申请的实施例不再对各种结合进行罗列。
此外,尽管在附图中以特定顺序描述了本公开的方法的操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤组合为一个步骤执行,和/或将一个步骤分解为多个步骤执行。还应当注意,根据本公开的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
Claims (22)
1.一种消息发送方法,其特征在于,应用于通信系统,所述通信系统包括第一服务器、第一终端、第二服务器、第二终端,所述第一终端位于第一区域,所述第一服务器为所述第一区域的服务器节点,所述第二终端位于第二区域,所述第二服务器为所述第二区域的服务器节点,所述方法包括:
所述第一终端向所述第一服务器发送消息,其中,所述第一终端加入的频道为第一频道,所述第二终端加入的频道为所述第一频道,所述第二服务器保存有所述第一频道与所述第二区域的对应关系,所述第二服务器保存有所述第一频道与所述第二终端的对应关系;
所述第二服务器将所述第一频道与所述第二区域的对应关系同步给所述第一服务器;
根据所述第一频道与所述第二区域的对应关系,所述第一服务器向所述第二服务器发送所述消息;
根据所述第一频道与所述第二终端的对应关系,所述第二服务器向所述第二终端发送所述消息。
2.根据权利要求1所述的方法,其特征在于,所述第一服务器保存有所述第一频道与所述第一区域的对应关系,所述第一服务器保存有所述第一频道与所述第一终端的对应关系,所述方法还包括:
根据所述第一频道与所述第一区域的对应关系,所述第一服务器向所述第一服务器发送所述消息;
根据所述第一频道与所述第一终端的对应关系,所述第一服务器向所述第一终端发送所述消息。
3.根据权利要求2所述的方法,其特征在于,还包括:
响应于所述第一终端加入所述第一频道,所述第一服务器保存所述第一频道与所述第一终端的对应关系;
响应于所述第二终端加入所述第一频道,所述第二服务器保存所述第一频道与所述第二终端的对应关系。
4.根据权利要求1-3所述的方法,其特征在于,所述第一服务器包括第一接入服务、第一消息服务、第一位置服务,所述第二服务器包括第二接入服务、第二消息服务、第二位置服务、同步服务,所述方法包括:
所述第一终端向所述第一接入服务发送所述消息,所述第二位置服务保存有所述第一频道与所述第二区域的对应关系,所述第二接入服务保存有所述第一频道与所述第二终端的对应关系,所述第二位置服务从所述第二接入服务获取到所述第一频道与所述第二区域的对应关系;
所述同步服务将所述第一频道与所述第二区域的对应关系同步给所述第一位置服务;
所述第一接入服务向所述第一消息服务发送所述消息;
根据所述第一位置服务所保存的所述第一频道与所述第二区域的对应关系,所述第一消息服务向所述第二消息服务发送所述消息;
所述第二消息服务向所述第二接入服务广播所述消息;
根据所述第二接入服务所保存的所述第一频道与所述第二终端的对应关系,所述第二接入服务向所述第二终端发送所述消息。
5.根据权利要求4所述的方法,其特征在于,所述第一位置服务保存有所述第一频道与所述第一区域的对应关系,所述第一接入服务保存有所述第一频道与所述第一终端的对应关系,所述第一位置服务从所述第一接入服务获取到所述第一频道与所述第一区域的对应关系,所述方法还包括:
根据所述第一位置服务所保存的所述第一频道与所述第一区域的对应关系,所述第一消息服务向所述第一接入服务广播所述消息;
根据所述第一接入服务所保存的所述第一频道与所述第一终端的对应关系,所述第一接入服务向所述第一终端发送所述消息。
6.根据权利要求5所述的方法,其特征在于,所述同步服务为第二同步服务,所述第一服务器还包括第一同步服务,所述方法还包括:
所述第一同步服务将所述第一频道与所述第一区域的对应关系同步给所述第二位置服务。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述通信系统还包括第三终端和第三服务器,所述第三终端位于第三区域,所述第三服务器为所述第三区域的服务器节点,所述第三终端加入的频道为第二频道,所述第三服务器保存有所述第二频道与所述第三区域的对应关系,所述方法还包括:
所述第三服务器将所述第二频道与所述第三区域的对应关系同步给所述第一服务器;
响应于未查询到所述第一频道与所述第三区域存在对应关系,所述第一服务器确定不向所述第三服务器发送所述消息。
8.一种消息发送方法,其特征在于,应用于第一服务器,所述方法包括:
所述第一服务器接收第一终端的消息,其中,所述第一终端位于第一区域,所述第一服务器为所述第一区域的服务器节点,所述第二终端位于第二区域,所述第二服务器为所述第二区域的服务器节点,所述第一终端加入的频道为第一频道,所述第二终端加入的频道为所述第一频道,所述第二服务器保存有所述第一频道与所述第二区域的对应关系;
所述第一服务器接收来自于所述第二服务器所同步的所述第一频道与所述第二区域的对应关系;
根据所述第一频道与所述第二区域的对应关系,所述第一服务器向所述第二服务器发送所述消息。
9.根据权利要求8所述的方法,其特征在于,所述第一服务器保存有所述第一频道与所述第一区域的对应关系,所述第一服务器保存有所述第一频道与所述第一终端的对应关系,所述方法还包括:
根据所述第一频道与所述第一区域的对应关系,所述第一服务器向所述第一服务器发送所述消息;
根据所述第一频道与所述第一终端的对应关系,所述第一服务器向所述第一终端发送所述消息。
10.根据权利要求9所述的方法,其特征在于,还包括:
响应于所述第一终端加入所述第一频道,所述第一服务器保存所述第一频道与所述第一终端的对应关系。
11.根据权利要求8-10所述的方法,其特征在于,所述第一服务器包括第一接入服务、第一消息服务、第一位置服务,所述第二服务器包括第二接入服务、第二消息服务、第二位置服务、同步服务,所述方法包括:
所述第一接入服务接收所述第一终端的所述消息,所述第二位置服务保存有所述第一频道与所述第二区域的对应关系,所述第二位置服务从所述第二接入服务获取到所述第一频道与所述第二区域的对应关系;
所述第一位置服务接收来自于所述同步服务所同步的所述第一频道与所述第二区域的对应关系;
所述第一接入服务向所述第一消息服务发送所述消息;
根据所述第一位置服务所保存的所述第一频道与所述第二区域的对应关系,所述第一消息服务向所述第二消息服务发送所述消息。
12.根据权利要求11所述的方法,其特征在于,所述第一位置服务保存有所述第一频道与所述第一区域的对应关系,所述第一接入服务保存有所述第一频道与所述第一终端的对应关系,所述第一位置服务从所述第一接入服务获取到所述第一频道与所述第一区域的对应关系,所述方法还包括:
根据所述第一位置服务所保存的所述第一频道与所述第一区域的对应关系,所述第一消息服务向所述第一接入服务广播所述消息;
根据所述第一接入服务所保存的所述第一频道与所述第一终端的对应关系,所述第一接入服务向所述第一终端发送所述消息。
13.根据权利要求12所述的方法,其特征在于,所述同步服务为第二同步服务,所述第一服务器还包括第一同步服务,所述方法还包括:
所述第一同步服务将所述第一频道与所述第一区域的对应关系同步给所述第二位置服务。
14.根据权利要求8-13中任一项所述的方法,其特征在于,所述方法还包括:
所述第一服务器接收到来自于第三服务器所同步的第二频道与第三区域的对应关系,其中,所述第三服务器为所述第三区域的服务器节点,所述第三服务器保存有所述第二频道与所述第三区域的对应关系;
响应于未查询到所述第一频道与所述第三区域存在对应关系,所述第一服务器确定不向所述第三服务器发送所述消息。
15.一种用于消息发送的服务器,其特征在于,包括:
接入服务,用于接收第一终端的消息,其中,所述第一终端位于第一区域,所述服务器为所述第一区域的服务器节点,所述第二服务器为所述第二区域的服务器节点,所述第一终端加入的频道为第一频道,所述第二服务器保存有所述第一频道与所述第二区域的对应关系;
所述接入服务还用于向消息服务发送所述消息;
所述消息服务,用于接收所述接入服务的所述消息;
位置服务用于接收来自于第二服务器所同步的所述第一频道与所述第二区域的对应关系;
所述消息服务还用于根据所述位置服务所保存的所述第一频道与所述第二区域的对应关系,向所述第二服务器发送所述消息。
16.根据权利要求15所述的服务器,其特征在于,
所述位置服务还用于保存所述第一频道与所述第一区域的对应关系;
所述接入服务还用于保存所述第一频道与所述第一终端的对应关系;
所述位置服务还用于从所述接入服务获取所述第一频道与所述第一区域的对应关系;
所述接入服务还用于向所述位置服务发送所述第一频道与所述第一区域的对应关系;
所述消息服务还用于根据所述位置服务所保存的所述第一频道与所述第一区域的对应关系,向所述接入服务广播所述消息;
所述接入服务还用于接收所述消息服务的所述消息;
所述接入服务还用于根据所述接入服务所保存的所述第一频道与所述第一终端的对应关系,向所述第一终端发送所述消息。
17.根据权利要求16所述的服务器,其特征在于,还包括:
同步服务,用于将所述第一频道与所述第一区域的对应关系同步给所述第二服务器。
18.根据权利要求15-17中任一项所述的服务器,其特征在于,
所述位置服务还用于接收来自于第三服务器所同步的第二频道与第三区域的对应关系,其中,所述第三服务器为所述第三区域的服务器节点,所述第三服务器保存有所述第二频道与所述第三区域的对应关系;
所述消息服务还用于响应于未查询到所述第一频道与所述第三区域存在对应关系,确定不向所述第三服务器发送所述消息。
19.一种服务器,其特征在于,所述服务器包括存储器以及耦合于所述存储器的处理器,所述存储器中存储有可执行指令,所述处理器用于调用所述可执行指令,使得所述服务器执行根据权利要求8至14中任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现根据权利要求8至14中任一项所述的方法。
21.一种计算机程序产品,所述计算机程序产品上包含计算机可执行指令,所述计算机可执行指令在被执行时实现根据权利要求8至14中任一项所述的方法。
22.一种芯片,包括处理电路,被配置为执行根据权利要求8至14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210523710.7A CN117097785A (zh) | 2022-05-13 | 2022-05-13 | 消息发送方法、电子设备及通信系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210523710.7A CN117097785A (zh) | 2022-05-13 | 2022-05-13 | 消息发送方法、电子设备及通信系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117097785A true CN117097785A (zh) | 2023-11-21 |
Family
ID=88772170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210523710.7A Pending CN117097785A (zh) | 2022-05-13 | 2022-05-13 | 消息发送方法、电子设备及通信系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117097785A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117407049A (zh) * | 2023-12-15 | 2024-01-16 | 广州嘉为科技有限公司 | 一种应用发布编排方法、装置、设备及存储介质 |
-
2022
- 2022-05-13 CN CN202210523710.7A patent/CN117097785A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117407049A (zh) * | 2023-12-15 | 2024-01-16 | 广州嘉为科技有限公司 | 一种应用发布编排方法、装置、设备及存储介质 |
CN117407049B (zh) * | 2023-12-15 | 2024-03-26 | 广州嘉为科技有限公司 | 一种应用发布编排方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019024719A1 (zh) | 对讲机、电子设备、对讲信息的传输方法及信息传输方法 | |
US10206219B2 (en) | Base station apparatus and resource management method and data processing method in wireless communication system | |
WO2019080690A1 (zh) | 一种通信系统、通信方法及其装置 | |
CN107431969A (zh) | 通信资源分配方法及装置、终端设备、基站和通信系统 | |
US20140199969A1 (en) | Mobile device and method for cellular assisted device-to-device communication | |
CN109672708B (zh) | 通信方法及装置、系统 | |
CN103733538A (zh) | 利用单载波小区聚合的联合传输CoMP | |
US20190098077A1 (en) | Cloud-based data sharing | |
US20160205616A1 (en) | Apparatus, system and method of communicating traffic to a plurality of wireless devices | |
WO2022082754A1 (zh) | 一种通信方法及装置 | |
US9392631B2 (en) | Wireless communication apparatus | |
CN114270885A (zh) | 移动通信网络中支持多播和广播服务的网络结构及服务提供方法 | |
US20230345221A1 (en) | Method for transmitting data in near field, device, and system | |
US20220386081A1 (en) | Nr sidelink group communication | |
WO2019079971A1 (zh) | 群组的通信方法及装置、计算机存储介质、计算机设备 | |
CN117097785A (zh) | 消息发送方法、电子设备及通信系统 | |
WO2020001237A1 (zh) | 传输调度的方法、相关装置及系统 | |
CN113016166B (zh) | 一种多媒体业务的传输方法及装置 | |
CN109874179B (zh) | 通话系统、主控制器、无线处理单元以及转发方法 | |
CN113519176B (zh) | 一种通信方法、通信装置及终端 | |
US20190116468A1 (en) | Efficient broadcast to mobile device operating independently of a sim | |
CN113747367A (zh) | 一种通信方法及通信装置 | |
CN105188145B (zh) | 一种通信方法及相关设备 | |
US9912985B2 (en) | Content distribution | |
US20180035482A1 (en) | Video communication system, video transmission terminal, video reception terminal, communication method, and recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |