CN112751748B - 会话消息管理方法、装置、服务器和可读存储介质 - Google Patents
会话消息管理方法、装置、服务器和可读存储介质 Download PDFInfo
- Publication number
- CN112751748B CN112751748B CN202011595184.2A CN202011595184A CN112751748B CN 112751748 B CN112751748 B CN 112751748B CN 202011595184 A CN202011595184 A CN 202011595184A CN 112751748 B CN112751748 B CN 112751748B
- Authority
- CN
- China
- Prior art keywords
- session
- client
- channel layer
- message
- layer 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.)
- Active
Links
Images
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
- 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]
- H04L51/043—Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
-
- 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/21—Monitoring or handling of messages
- H04L51/216—Handling conversation history, e.g. grouping of messages in sessions or threads
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种会话消息管理方法、装置、服务器和可读存储介质,属于互联网技术领域。该方法包括:接收第一客户端发送的会话消息,向通道层节点发送不超过预设消息数量的会话消息,控制通道层节点向与通道层节点连接的第二客户端发送会话消息。会话管理服务器在发送会话消息时,向通道层节点发送的会话消息的数量不超过预设消息数量,当客户端的数量较多时,可以减少会话管理服务器向通道层节点发送的会话消息的数量,从而可以降低会话管理服务器的负载,提高通信效率。
Description
技术领域
本发明属于互联网技术领域,特别是涉及一种会话消息管理方法、装置、服务器和可读存储介质。
背景技术
即时通信(Instant Messaging,IM)是指能够即时发送和接收互联网消息的业务。基于IM系统,可以建立针对多个客户端之间的会话,多个客户端之间可以通过建立的会话,互相发送和接收会话消息。在会话过程中,会话管理服务器在接收到其中一个客户端发送的消息时,可以基于预先建立的会话,将会话消息发送给会话中的其他客户端。
在实现本申请的过程中,发明人发现现有技术中至少存在如下问题:当会话对应的客户端数量较多时,会话管理服务器在每次发送会话消息时,需要同时向大量的客户端发送会话消息,会话管理服务器的负载较大,通信效率较低。
发明内容
有鉴于此,本发明提供一种会话消息管理方法、装置、服务器和可读存储介质,在一定程度上解决IM系统中会话管理服务器的负载较大,通信效率较低的问题。
为了解决上述技术问题,本申请是这样实现的:
第一方面,本申请实施例提供了一种会话消息管理方法,该方法包括:
接收第一客户端发送的会话消息;所述会话消息对应所述第一客户端与多个第二客户端之间预先建立的会话;
向通道层节点发送不超过预设消息数量的所述会话消息,并控制所述通道层节点向与所述通道层节点连接的所述第二客户端发送所述会话消息;
其中,所述通道层节点用于建立所述第一客户端和所述第二客户端分别与所述会话管理服务器之间的通信连接;所述预设消息数量用于限制向所述通道层节点发送的所述会话消息的数量。
第二方面,本申请实施例提供了一种消息管理装置,该装置包括:
接收模块,用于接收第一客户端发送的会话消息;所述会话消息对应所述第一客户端与多个第二客户端之间预先建立的会话;
发送模块,用于向通道层节点发送不超过预设消息数量的所述会话消息,并控制所述通道层节点向与所述通道层节点连接的所述第二客户端发送所述会话消息;
其中,所述通道层节点用于建立所述第一客户端和所述第二客户端分别与所述会话管理服务器之间的通信连接;所述预设消息数量用于限制向所述通道层节点发送的所述会话消息的数量。
第三方面,本申请实施例提供了一种服务器,该服务器包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
在本申请实施例中,会话管理服务器接收第一客户端发送的会话消息,向通道层节点发送不超过预设消息数量的会话消息,控制通道层节点向与通道层节点连接的第二客户端发送会话消息。会话管理服务器在发送会话消息时,向通道层节点发送的会话消息的数量不超过预设消息数量,当客户端的数量较多时,可以减少会话管理服务器向通道层节点发送的会话消息的数量,从而可以降低会话管理服务器的负载,提高通信效率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是现有技术中的一种会话消息管理示意图;
图2是现有技术中的一种消息订阅示意图;
图3是本申请实施例提供的一种会话消息管理方法的步骤流程图;
图4是本申请实施例提供的一种会话消息管理示意图;
图5是本申请实施例提供的一种会话消息管理方法的步骤流程图;
图6是本申请实施例提供的一种消息订阅示意图;
图7是本申请实施例提供的一种消息管理装置的框图;
图8是本申请实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
为了更清楚的介绍本发明,首先对现有技术中的会话消息管理方法进行简单介绍。
如图1所示,图1是现有技术中的一种会话消息管理示意图,会话管理服务器包括业务逻辑层和通道层,业务逻辑层负责会话消息的处理,通道层负责会话管理服务器与客户端之间的通信。通道层可以包括通道层节点1、通道层节点2和通道层节点3,会话管理服务器可以为每个通道层节点分别配置不同的网络地址(Interworking Protocol,IP),以使不同的客户端可以通过不同的通道层节点与会话管理服务器建立通信连接。例如,会话管理服务器在接收到客户端A发送的通信建立请求时,可以响应于客户端A发送的通信建立请求,建立客户端A与通道层节点1之间的通信连接,也即建立会话管理服务器与客户端A之间的通信连接。同理,会话管理服务器可以建立客户端B与通道层节点1之间的通信连接,客户端C和客户端D分别与通道层节点2之间的通信连接,以及客户端E和客户端F分别与通道层节点3之间的通信连接。其中,客户端A、客户端B、客户端C、客户端D、客户端E和客户端F与通道层节点之间的通信连接为长链接,客户端与通道层节点之间持续保持通信连接。会话管理服务器可以根据负载均衡原则,在多个通道层节点之间分配客户端,以使每个通道层节点连接的客户端的数量相同或接近。
示例性地,客户端A、客户端B、客户端C、客户端D、客户端E和客户端F为同一个会话对应的多个客户端。客户端A为发送会话消息的第一客户端,客户端C、客户端D、客户端E和客户端F为接收会话消息的第二客户端。会话消息例如文字、音频、视频和图片等数据。如图1所示,图1中粗实线为会话管理服务器接收会话消息的路径,细实线为会话管理服务器发送会话消息的路径,会话管理服务器在接收到客户端A通过通道层节点1发送的会话消息,并确定会话对应的第二客户端包括客户端B、客户端C、客户端D、客户端E和客户端F之后,可以通过通道层节点1向客户端B发送会话消息,通过通道层节点2向客户端C和客户端B发送会话消息,以及通过通道层节点3向客户端E和客户端D发送会话消息。其中,会话管理服务器发送会话消息时,以客户端为维度,向通道层节点发送的会话消息的数量与第二客户端的数量相同。如图1所示,会话管理服务器在向客户端C和客户端D发送会话消息时,需要向通道层节点2发送两个会话消息,即图1中通道层节点2对应的两条细实线。因此,当第二客户端的数量较多时,会话管理服务器需要向通道层节点发送大量的会话消息,导致会话管理服务器的负载较大,通信效率较低。通道层节点的具体使用方法可以根据需求设置,本实施例对此不做限制。
同时,会话管理服务器在接收到会话消息之后,会保存当前时刻接收到的会话消息,得到历史会话消息。用户在登录会话管理服务器之后,可以操作客户端获取历史会话消息。如图2所示,图2是现有技术中的一种消息订阅示意图,当会话中的任意一个客户端发送会话消息之后,会话管理服务器会在缓存中间件中存储一份会话消息,得到历史会话消息,缓存中间件例如远程字典服务器(Remote Dictionary Server,Redis)。如图2所示,当会话对应的客户端A与会话管理服务器建立通信连接之后,客户端A可以通过超文本传输协议(HyperText Transfer Protocol,HTTP)向会话管理服务器发送订阅请求,会话管理服务器可以响应于客户端A发送的订阅请求,将缓存中间件中存储的历史会话消息发送给客户端A。图2中实线为会话管理服务器接收订阅请求的路径,虚线为历史会话消息的发送路径,会话管理服务器在存储会话消息时,针对会话对应的所有客户端只存储一份会话消息。当会话对应的客户端数量较多时,会出现大量的客户端同时访问一份历史会话消息的情况,导致会话管理服务器无法及时处理每个客户端的订阅请求,降低了会话管理服务器的性能。
图3是本申请实施例提供的一种会话消息管理方法的步骤流程图,如图3所示,该方法可以包括:
步骤301、接收第一客户端发送的会话消息。
其中,会话消息对应第一客户端与多个第二客户端之间预先建立的会话。
本实施例中,会话消息管理方法可以由会话管理服务器执行,在会话建立过程中,可以基于多个会话账户,预先在会话管理服务器中建立针对多个会话账户的会话关系。在建立会话关系之后,会话包括的所有账户中,部分或全部会话账户可以分别通过对应的客户端登录服务器,通过多个客户端建立可以互相发送会话消息的会话。第一客户端为多个客户端中发送会话消息的客户端,第二客户端为多个客户端中接收会话消息的客户端。
示例性地,用户A可以使用会话账户A,通过客户端A登录会话管理服务器,并操作客户端A在会话管理服务器中建立一个会话W,会话W例如多人视频会议、聊天室或多人聊天群。在建立会话W之后,用户A可以操作客户端A,将用户B的会话账户B、用户C的会话账户C、用户D的会话账户D,以及用户E的会话账户E和用户F的会话账户F添加到会话W中,得到包括会话账户A、会话账户B、会话账户C、会话账户D、会话账户E和会话账户F的会话关系。其中,会话账户可以为用户预先在会话管理服务器中注册得到的、用于标识用户身份的账号信息。会话的具体建立方法可以根据需求设置,会话的具体类型可以包括但不限于如上所述的多人视频会议、聊天室或多人聊天群等会话类型。
在建立会话关系之后,用户可以通过会话账户登录服务器,建立客户端与服务器之间的通信连接,当多个客户端同时与会话管理服务器建立通信连接时,多个用户之间可以通过客户端互相发送会话消息。例如,若用户A使用客户端A登录会话管理服务器,建立客户端A与会话管理服务器之间的通信连接,用户B使用客户端B登录会话管理服务器,建立客户端B与会话管理服务器之间的通信连接,用户C使用客户端C登录会话管理服务器,建立客户端C与会话管理服务器之间的通信连接,以及用户D使用客户端D登录会话管理服务器,建立客户端D与会话管理服务器之间的通信连接。此时,会话W对应客户端A、客户端B、客户端C和客户端D,用户A可以在客户端A中输入会话消息(此时客户端A为会话消息的发送方,即第一客户端),并操作客户端A向会话管理服务器发送会话消息,会话管理服务器在接收到客户端A发送的会话消息之后,可以将会话消息发送给客户端B、客户端C和客户端D(客户端B、客户端C和客户端D为会话消息的接收方,即第二客户端)。其中,由于用户E和用户F并未使用客户端登录会话管理服务器,用户E和用户F并不在线,用户E和用户F的会话账户为离线会话账户;相反的,用户A、用户B、用户C和用户D的会话账户为在线会话账户。
在一种实施例中,客户端在向会话管理服务器发送会话消息的同时,可以发送会话的会话标识,会话管理服务器可以根据会话标识,确定会话消息对应的会话。例如,用户A通过客户端A发送的会话消息为图片X,客户端A在向会话管理服务器发送图片X时,可以发送包括图片X和会话标识W的会话消息数据包,会话标识W为会话W的标识信息。会话管理服务器在接收到会话消息数据包之后,可以对会话消息数据包进行解析,获取会话消息数据包中的图片X和会话标识W,并且可以根据会话标识W确定图片X对应会话W。进一步的,可以确定图片X为客户端A向会话W对应的其他客户端发送的会话消息。
实际应用中,会话标识可以由会话管理服务器在建立会话时根据用户在客户端中输入的标识信息建立,会话标识的具体类型和生成方法,以及会话消息的发送方法可以根据需求设置,本实施例对此不做限制。
步骤302、向通道层节点发送不超过预设消息数量的会话消息,并控制通道层节点向与通道层节点连接的第二客户端发送会话消息。
其中,通道层节点用于建立第一客户端和第二客户端分别与会话管理服务器之间的通信连接;预设消息数量用于限制向通道层节点发送的会话消息的数量。
本实施例中,通道层中可以包括一个或多个通道层节点,会话管理服务器在向第二客户端发送会话消息时,首先可以向每个通道层节点分别发送不超过预设消息数量的会话消息,然后控制通道层节点向与通道层节点连接的第二客户端发送会话消息。
示例性地,如图4所示,图4是本申请实施例提供的一种会话消息管理示意图,图4中粗实线为会话管理服务器接收会话消息的路径,细实线为会话管理服务器发送会话消息的路径,预设消息数量例如为2。结合步骤301,会话管理服务器在接收到客户端A发送的会话消息时,首先向通道层节点1、通道层节点2和通道层节点3分别发送1个或2个会话消息,向每个通道层节点发送的会话消息的数量不超过2个。然后,控制通道层节点1向与通道层节点1连接的客户端B发送会话消息,并控制通道层节点2分别向与通道层节点2连接的客户端C和客户端D发送会话消息。客户端E和客户端F并未与会话管理服务器建立通信连接,通道层节点3并未连接第二客户端,会话管理服务器可以不向通道层节点3发送会话消息。或者,可以向通道层节点3发送会话消息,通道层节点3在接收到会话消息之后,可以忽略会话消息。
在一种实施例中,会话管理服务器可以为每个客户端分别配置不同的客户端标识,客户端标识例如客户端的身份证标识号(Identity document,ID)。例如,会话管理服务器可以根据客户端所在的电子设备的设备识别码(International Mobile EquipmentIdentity,IMEI),通过哈希(hash)算法产生标识客户端身份的ID,及客户端标识。客户端标识的具体生成方法和类型可以根据需求设置,本实施例对此不做限制。
会话管理服务器可以预先确定通道层节点对应的客户端,建立并存储通道层节点与客户端之间的映射关系。结合上述举例,会话管理服务器可以建立通道层节点1的第一映射列表,第一映射列表与会话W对应。客户端A在向会话管理服务器发送通信建立请求时,可以发送包括会话标识W的通信建立请求,会话管理服务器在接收到通信建立请求后,可以解析得到会话标识W,当会话管理服务器将客户端A分配给通道层节点1,并建立通道层节点1与客户端A之间的通信连接时,可以确定通道层节点1连接会话W对应的客户端A,同理可以确定通道层节点1连接会话W对应的客户端B。此时,会话管理服务器可以在通道层节点1的第一映射列表中存储客户端A和客户端B的客户端标识。同理,可以建立通道层节点2的第一映射列表。
在一种实施例中,会话管理服务器在接收到第一客户端发送的会话消息时,首先可以确定会话消息所属的会话,然后确定会话对应的通道层节点的第一映射列表。结合上述举例,会话管理服务器在接收到客户端A发送的会话消息数据包,解析得到会话标识W之后,可以确定会话消息对应会话W,并可以根据会话标识W确定与会话W对应的通道层节点1的第一映射列表,并可以根据第一映射列表中的客户端标识,确定通道层节点1连接有会话W对应客户端A和客户端B。同理,可以确定通道层节点2连接有会话W对应客户端C和客户端D。
会话管理服务器在向通道层节点1发送会话消息,并根据通道层节点1的第一映射列表确定客户端A和客户端B之后,可以控制通道层节点1向客户端B发送会话消息。同理,在向通道层节点2发送会话消息,并根据通道层节点2的第一映射列表确定客户端C和客户端D之后,可以控制通道层节点2向客户端C和客户端D发送会话信息。会话管理服务器控制通道层节点向通道层节点连接的第二客户端发送会话消息的具体方法可以根据需求设置,本实施例对此不做限制。其中,客户端A为第一客户端,会话管理服务器可以控制通道层节点不向第一客户端发送会话消息。
实际应用中,预设消息数量的具体数值可以根据需求设置,例如预设消息数量可以为1个、2个、3个或4个等较小的整数值,会话管理服务器在向通道层节点发送会话消息时,限制向通道层节点发送的会话消息的数量不超过预设消息数量,可以避免向通道层节点发送大量的会话消息,降低会话管理服务器的负载。结合图4所示,若通道层节点2连接有100个第二客户端,若采用图1所示的发送方法,会话管理服务器需要向通道层节点2发送100个会话消息。当限制向通道层节点2发送的会话消息的数量不超过2个时,可以减少向通道层节点2发送的会话消息的数量,降低会话管理服务器的负载。
综上所述,本实施例中,会话管理服务器接收第一客户端发送的会话消息,向通道层节点发送不超过预设消息数量的会话消息,控制通道层节点向与通道层节点连接的第二客户端发送会话消息。会话管理服务器在发送会话消息时,向通道层节点发送的会话消息的数量不超过预设消息数量,当客户端的数量较多时,可以减少会话管理服务器向通道层节点发送的会话消息的数量,从而可以降低会话管理服务器的负载,提高通信效率。
图5是本申请实施例提供的一种会话消息管理方法的步骤流程图,如图5所示,该方法可以包括:
步骤501、接收第一客户端发送的会话消息。
步骤502、确定第二客户端的数量大于或等于预设目标数量。
其中,当第二客户端的数量大于或等于预设目标数量时,表示会话管理服务器在接收到第一客户端发送的会话消息时,需要向大量的第二客户端发送会话消息,会导致会话管理服务器的负载较大,通信效率较低。
在一种实施例中,会话管理服务器在接收到第一客户端发送的会话消息时,首先可以确定会话消息对应的会话,然后可以统计会话对应的第二客户端的数量。结合上述举例,会话管理服务器在接收到客户端A发送的会话消息数据包,解析得到会话标识W之后,可以确定会话消息属于会话W,并可以根据预先存储的通道层节点1的第一映射列表,确定通道层节点1连接有会话W对应的客户端A和客户端B。同理,可以确定通道层节点2连接有会话W对应的客户端C和客户端D,此时会话管理服务器可以统计得到当前时刻所有第二客户端的数量为3个。当所有第二客户端的数量大于或等于预设目标数量时,执行后续步骤503,向通道层节点发送不超过预设消息数量的会话消息。
相反的,当会话对应的客户端的数量小于预设目标数量时,表示会话管理服务器在接收到第一客户端发送的会话消息时,并不需要向大量第二客户端发送会话消息。此时,会话管理服务器可以按图1所示的会话消息发送方法,向每个第二客户端发送会话消息。
在一种实施例中,会话管理服务器在接收到会话消息,确定会话消息对应的会话之后,可以直接确定会话对应的所有客户端的数量,即第一客户端和第二客户端的总量。当会话对应的所有客户端的数量大于预设客户端数量时,表示第二客户端的数量大于或等于预设目标数量。
实际应用中,会话管理服务器在确定第二客户端的数量大于或等于预设目标数量时执行步骤503,向通道层节点发送不超过预设消息数量的会话消息,可以避免会话中的客户端数量较多时,导致会话管理服务器负载较大的问题。同时,可以在第二客户端的数量小于预设目标数量时通过图1所示的方法向第二客户端发送会话消息,可以简化会话消息的发送过程。
在一种实施例中,会话管理服务器可以直接确定会话中的会话账户数量,当会话账户数量大于或等于预设会话账户数量时,执行步骤503。结合上述举例,会话管理服务器可以在建立会话W的过程中,统计添加到会话W中的所有会话账户,确定会话W中所有会话账户的总数量,即会话账户数量,并对应存储会话W的会话标识和对应的会话账户数量。若会话账户数量大于或等于预设会话账户数量,服务器在接收到会话消息时,可以直接执行步骤503。相反的,当会话账户数量小于预设会话账户数量时,可以通过图1所示的方法发送会话消息。
其中,预设目标数量和预设会话账户数量的具体数值可以根据会话管理服务器的性能具体设置,本实施例对此不做限制。
步骤503、从多个通道层节点中确定目标通道层节点。
其中,目标通道层节点为连接有第二客户端的通道层节点。
步骤504、向目标通道层节点发送不超过预设消息数量的会话消息,并控制目标通道层节点向与目标通道层节点连接的第二客户端发送会话消息。
示例性地,如图4所示,会话管理服务器中可以包括多个通道层节点,会话管理服务器在发送会话消息之前,首先可以确定连接有第二客户端的目标通道层节点,然后向目标通道层节点发送不超过预设消息数量的会话消息。
在一种实施例中,会话管理服务器可以预先统计会话对应的所有通道层节点,建立并存储会话与通道层节点之间的映射关系。结合上述举例,会话管理服务器可以建立会话W的第二映射列表,会话管理服务器在建立通道层节点1与客户端A之间的通信连接时,可以确定通道层节点1连接有会话W对应的客户端。同理,可以确定通道层节点2连接有会话W对应的客户端。此时,会话管理服务器可以在第二映射列表中添加通道层节点1的IP和通道层节点2的IP,以存储会话W与通道层节点1和通道层节点2的映射关系。
会话管理服务器在接收到客户端A发送的会话消息数据包,解析得到会话标识W之后,可以根据会话标识W确定会话W的第二映射列表,并根据第二映射列表中的通道层节点1的IP和通道层节点2的IP,确定通道层节点1和通道层节点2连接有会话W对应的客户端。可以直接确定通道层节点2为目标通道层节点,并且在确定通道层节点1连接有客户端B之后,可以确定通道层节点1为目标通道层节点。此时,会话管理服务器可以分别向通道层节点1和通道层节点2发送1个会话消息。通道层节点1和通道层节点2在接收到会话消息时,可以分别向连接的第二客户端发送会话消息。需要说明的是,当客户端的数量较多时,每个通道层节点都会连接多个客户端,则每个通道层节点都会连接有第二客户端。
实际应用中,会话管理服务器在发送会话消息时,只向连接有第一客户端和/或第二客户端的通道层节点发送会话消息,可以避免向所有通道层节点发送会话消息,从而可以降低会话管理服务器向通道层节点发送的会话消息的数量,进一步的降低会话管理服务器的负载。
综上所述,本实施例中,会话管理服务器接收第一客户端发送的会话消息,向通道层节点发送不超过预设消息数量的会话消息,控制通道层节点向与通道层节点连接的第二客户端发送会话消息。会话管理服务器在发送会话消息时,向通道层节点发送的会话消息的数量不超过预设消息数量,当客户端的数量较多时,可以减少会话管理服务器向通道层节点发送的会话消息的数量,从而可以降低会话管理服务器的负载,提高通信效率。
可选的,该方法还可以包括:
确定会话包括的离线会话账户;离线会话账户为会话包括的会话账户中,未登录会话管理服务器的会话账户;会话账户用于建立会话;
为每个离线会话账户分别存储一份会话消息。
本实施例中,会话管理服务器可以为会话中的每个离线会话账户分别存储一份会话消息,以在离线会话账户登录会话管理服务器之后,订阅属于自己的历史会话消息。示例性地,如图6所示,图6是本申请实施例提供的一种消息订阅示意图,图6中实线为会话管理服务器接收订阅请求的路径,虚线为历史会话消息的发送路径。会话管理服务器可以统计会话中的所有离线会话账户,以在接收到会话消息之后,为每个离线会话账户分别存储一份会话消息,得到对应的历史会话消息。结合上述举例,客户端A在向会话管理服务器发送通信建立请求时,可以发送包括会话账户A的通信建立请求,会话管理服务器可以解析得到用户A的会话账户A。会话管理服务器在建立通道层节点1与客户端A的通信连接时,可以确定客户端A为会话账户A的客户端,会话账户A为在线会话账户。同理,可以确定会话账户B、会话账户C和会话账户D为在线会话账户。相反的,可以确定会话中除会话账户A、会话账户B、会话账户C和会话账户D之外的会话账户E和会话账户F为离线会话账户。会话管理服务器可以根据当前建立的通信连接,实时统计会话中的在线会话账户,并根据会话中的所有会话账户和在线会话账户,确定离线会话账户。
结合上述举例,会话管理服务器在接收到客户端A发送的会话消息数据包,解析得到会话标识W和图片X之后,首先可以根据会话标识W确定会话W中的离线会话账户E和离线会话账户F,并为离线会话账户E和离线会话账户F分别存储图片X,得到离线会话账户E的历史会话消息和离线会话账户F的历史会话消息。相应的,当用户E通过客户端E登录会话管理服务器之后,可以向会话管理服务器发送订阅请求,会话管理服务器可以响应于客户端E发送的订阅请求,从会话账户E的历史会话消息中确定图片X,向客户端E返回图片X。客户端从会话管理服务器中订阅历史会话消息的具体过程可以根据需求设置,本实施例对此不做限制。
实际应用中,会话管理服务器在存储会话消息时,可以为会话中的每个离线会话账户分别存储一份会话消息。当多个客户端同时向会话管理服务器发送订阅请求时,会话管理服务器可以根据每个客户端分别对应的会话账户的历史会话消息,为客户端提供历史会话消息,可以提高会话管理服务器处理并行数据访问的能力,提高会话管理服务器的性能。并且,在历史会话消息的存储过程中,为离线会话账户存储,不为在线会话账户存储,可以降低数据存储量,降低会话管理服务器的存储压力。
可选地,在为每个离线会话账户分别存储一份会话消息之前,该方法还可以包括:
确定离线会话账户的数量大于或等于预设离线数量。
本实施例中,会话管理服务器可以在离线会话账户的数量大于或等于预设离线数量时,为每个离线会话账户存储一份会话消息。相反的,当离线会话账户的数量小于预设离线数量时,可以为所有离线会话账户存储一份会话消息。为所有离线会话账户存储一份会话消息的方法可以参考图2所示,本实施例对此不做赘述。
实际应用中,当离线会话账户的数量大于或等于预设离线数量时,可能会出现大量用户同时上线,出现大量客户端同时访问一份历史会话消息的问题,导致会话管理服务器无法及时处理每个客户端的订阅请求。相反的,当离线会话账户的数量小于预设离线数量时,离线用户同时上线时,同时访问历史会话消息的客户端数量较少,不会降低会话管理服务器性能。此时,可以只存储一份会话消息,可以满足用户需求,并可以降低会话管理服务器的存储压力。
可选地,该方法还可以包括:
在会话包括的会话账户的数量大于或等于预设账户数量的情况下,为每个会话账户分别存储一份会话消息;会话账户用于建立会话。
本实施例中,会话管理服务器可以为每个会话账户存储一份会话消息。结合上述举例,当会话管理服务器接收到客户端A发送的会话消息之后,可以为会话账户A、会话账户B、会话账户C、会话账户D、会话账户E和会话账户F分别存储一份会话消息,得到分别属于会话账户A、会话账户B、会话账户C、会话账户D、会话账户E和会话账户F的历史会话消息。
实际应用中,会话管理服务器为每个会话账户存储一份会话消息,可以方便会话账户在上线之后,访问历史会话消息。并且,在当大量客户端同时方位历史会话消息时,可以避免大量的客户端同时访问一份历史会话消息,可以提高会话管理服务器处理并行访问的能力,提高会话管理服务器的性能。
可选地,该方法还可以包括:
在接收到订阅客户端发送的订阅请求时,确定订阅客户端对应的订阅会话账户;订阅请求用于获取预先存储的会话消息;
若预先存储有订阅会话账户的会话消息,则向订阅客户端发送订阅会话账户的会话消息;
若未存储有订阅会话账户的会话消息,则向订阅客户端发送除订阅会话账户之外的其他会话账户的会话消息。
本实施例中,订阅客户端为访问历史会话消息的客户端,订阅会话账户为订阅客户端对应的会话账户。会话管理服务器在接收到订阅客户端发送的订阅请求时,可以将预先存储的历史会话消息发送给订阅客户端。结合上述举例,用户E在使用客户端E登录会话管理服务器之后,可以访问会话管理服务器预先为会话账户E存储的图片X。
当会话管理服务器接收到客户端E发送的订阅请求时,首先确定客户端E对应的会话账户E,然后根据会话账户E,确定是否存储有会话账户E的历史会话消息。若预先存储有会话账户E的历史会话消息,会话管理服务器可以将预先存储的历史会话消息中的图片X发送给客户端E。相反的,若未存储有会话账户E的历史会话消息,会话管理服务器可以会话账户F、会话账户B、会话账户C和会话账户E中,确定存储有历史会话消息的会话账户F,并将会话账户F的历史会话消息中的图片X发送给客户端E。
实际应用中,会话管理服务器在接收到客户端发送的订阅请求之后,确定客户端对应的会话账户,从会话账户的历史会话消息中确定会话消息或者从其他会话账户的历史会话消息中确定历史会话消息,向客户端返回历史会话消息,可以为用户提供历史会话消息。
图7是本申请实施例提供的一种消息管理装置的框图,如图7所示,该装置700可以包括:
接收模块701,用于接收第一客户端发送的会话消息;会话消息对应第一客户端与多个第二客户端之间预先建立的会话;
第一发送模块702,用于向通道层节点发送不超过预设消息数量的会话消息,并控制通道层节点向与通道层节点连接的第二客户端发送会话消息;
其中,通道层节点用于建立第一客户端和第二客户端分别与会话管理服务器之间的通信连接;预设消息数量用于限制向通道层节点发送的会话消息的数量。
在本申请实施例中,接收第一客户端发送的会话消息,向通道层节点发送不超过预设消息数量的会话消息,控制通道层节点向与通道层节点连接的第二客户端发送会话消息。会话管理服务器在发送会话消息时,向通道层节点发送的会话消息的数量不超过预设消息数量,当客户端的数量较多时,可以减少会话管理服务器向通道层节点发送的会话消息的数量,从而可以降低会话管理服务器的负载,提高通信效率。
可选地,通道层节点的数量为多个,所述发送模块702具体用于从多个通道层节点中确定目标通道层节点;目标通道层节点为连接有第二客户端的通道层节点;
向目标通道层节点发送不超过预设消息数量的会话消息,并控制目标通道层节点向与目标通道层节点连接的第二客户端发送会话消息。
可选地,装置700还可以包括:
第一确定模块,用于确定第二客户端的数量大于或等于预设目标数量。
可选地,装置700还可以包括:
第二确定模块,用于确定会话包括的离线会话账户;离线会话账户为会话包括的会话账户中,未登录会话管理服务器的会话账户;会话账户用于建立会话;
第一存储模块,用于为每个离线会话账户分别存储一份会话消息。
可选地,装置700还可以包括:
第三确定模块,用于确定离线会话账户的数量大于或等于预设离线数量。
可选地,装置700还可以包括:
第二存储模块,用于在会话包括的会话账户的数量大于或等于预设账户数量的情况下,为每个会话账户分别存储一份会话消息;会话账户用于建立会话。
可选地,装置700还可以包括:
第三确定模块,用于在接收到订阅客户端发送的订阅请求时,确定订阅客户端对应的订阅会话账户;订阅请求用于获取预先存储的会话消息;
第二发送模块,用于若预先存储有订阅会话账户的会话消息,则向订阅客户端发送订阅会话账户的会话消息;
第三发送模块,用于若未存储有订阅会话账户的会话消息,则向订阅客户端发送除订阅会话账户之外的其他会话账户的会话消息。
本申请实施例提供的消息管理装置具备执行会话消息管理方法相应的功能模块,可执行本申请实施例所提供的会话消息管理方法,且能达到相同的有益效果。
在本发明提供的又一实施例中,还提供了一种服务器,服务器可以包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述会话消息管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
示例的,如图8所示,图8是本申请实施例提供的一种电子设备的硬件结构示意图,该电子设备具体可以包括:处理器801、存储装置802、具有触摸功能的显示屏803、输入装置804、输出装置805以及通信装置806。该电子设备中处理器801的数量可以是一个或者多个,图8中以一个处理器801为例。该电子设备的处理器801、存储装置802、显示屏803、输入装置804、输出装置805以及通信装置806可以通过总线或者其他方式连接。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的会话消息管理方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的会话消息管理方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种会话消息管理方法,其特征在于,应用于会话管理服务器,所述方法包括:
接收第一客户端发送的会话消息;所述会话消息对应所述第一客户端与多个第二客户端之间预先建立的会话;
向通道层节点发送不超过预设消息数量的所述会话消息,并控制所述通道层节点向与所述通道层节点连接的所述第二客户端发送所述会话消息;
其中,所述通道层节点用于建立所述第一客户端和所述第二客户端分别与所述会话管理服务器之间的通信连接;所述预设消息数量用于限制向所述通道层节点发送的所述会话消息的数量。
2.根据权利要求1所述的方法,其特征在于,所述通道层节点的数量为多个,所述向通道层节点发送不超过预设消息数量的所述会话消息,并控制所述通道层节点向与所述通道层节点连接的所述第二客户端发送所述会话消息,包括:
从多个所述通道层节点中确定目标通道层节点;所述目标通道层节点为连接有所述第二客户端的通道层节点;
向所述目标通道层节点发送不超过所述预设消息数量的所述会话消息,并控制所述目标通道层节点向与所述目标通道层节点连接的所述第二客户端发送所述会话消息。
3.根据权利要求1所述的方法,其特征在于,在所述向通道层节点发送不超过预设消息数量的所述会话消息之前,还包括:
确定所述第二客户端的数量大于或等于预设目标数量。
4.根据权利要求1所述的方法,其特征在于,还包括:
确定所述会话包括的离线会话账户;所述离线会话账户为所述会话包括的会话账户中,未登录所述会话管理服务器的会话账户;所述会话账户用于建立所述会话;
为每个所述离线会话账户分别存储一份所述会话消息。
5.根据权利要求4所述的方法,其特征在于,在所述为每个所述离线会话账户分别存储一份所述会话消息之前,还包括:
确定所述离线会话账户的数量大于或等于预设离线数量。
6.根据权利要求1所述的方法,其特征在于,还包括:
在所述会话包括的会话账户的数量大于或等于预设账户数量的情况下,为每个所述会话账户分别存储一份所述会话消息;所述会话账户用于建立所述会话。
7.根据权利要求4-6中任一项所述的方法,其特征在于,还包括:
在接收到订阅客户端发送的订阅请求时,确定所述订阅客户端对应的订阅会话账户;所述订阅请求用于获取预先存储的所述会话消息;
若预先存储有所述订阅会话账户的会话消息,则向所述订阅客户端发送所述订阅会话账户的会话消息;
若未存储有所述订阅会话账户的会话消息,则向所述订阅客户端发送除所述订阅会话账户之外的其他会话账户的会话消息。
8.一种会话消息管理装置,其特征在于,设置于会话管理服务器,所述装置包括:
接收模块,用于接收第一客户端发送的会话消息;所述会话消息对应所述第一客户端与多个第二客户端之间预先建立的会话;
第一发送模块,用于向通道层节点发送不超过预设消息数量的所述会话消息,并控制所述通道层节点向与所述通道层节点连接的所述第二客户端发送所述会话消息;
其中,所述通道层节点用于建立所述第一客户端和所述第二客户端分别与所述会话管理服务器之间的通信连接;所述预设消息数量用于限制向所述通道层节点发送的所述会话消息的数量。
9.一种服务器,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-7中任一项所述的会话消息管理方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1-7中任一项所述的会话消息管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011595184.2A CN112751748B (zh) | 2020-12-28 | 2020-12-28 | 会话消息管理方法、装置、服务器和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011595184.2A CN112751748B (zh) | 2020-12-28 | 2020-12-28 | 会话消息管理方法、装置、服务器和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112751748A CN112751748A (zh) | 2021-05-04 |
CN112751748B true CN112751748B (zh) | 2023-04-18 |
Family
ID=75646836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011595184.2A Active CN112751748B (zh) | 2020-12-28 | 2020-12-28 | 会话消息管理方法、装置、服务器和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112751748B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113794939B (zh) * | 2021-07-30 | 2023-06-20 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN113726878A (zh) * | 2021-08-30 | 2021-11-30 | 深圳追一科技有限公司 | 在集群环境下的会话处理方法、系统、设备和存储介质 |
CN114584602B (zh) * | 2022-03-01 | 2023-08-29 | 百果园技术(新加坡)有限公司 | 一种会话状态管理方法、系统、装置、设备及存储介质 |
CN114827065B (zh) * | 2022-04-28 | 2024-02-23 | 抖动科技(深圳)有限公司 | 基于统一通信信道的实时通信方法及相关设备 |
CN115118772A (zh) * | 2022-06-21 | 2022-09-27 | 壹沓科技(上海)有限公司 | 一种消息通信的系统及方法 |
CN117749769A (zh) * | 2023-02-24 | 2024-03-22 | 书行科技(北京)有限公司 | 一种会话建立方法、装置及服务器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003242057A (ja) * | 2002-02-14 | 2003-08-29 | Nippon Telegr & Teleph Corp <Ntt> | 負荷分散方法および装置 |
WO2017219848A1 (zh) * | 2016-06-22 | 2017-12-28 | 中兴通讯股份有限公司 | 分布式数据库中id的处理方法、管理系统及服务器 |
KR20180113080A (ko) * | 2017-04-05 | 2018-10-15 | 라인 가부시키가이샤 | 데이터 송수신 방법 및 시스템 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6088728A (en) * | 1997-06-11 | 2000-07-11 | Oracle Corporation | System using session data stored in session data storage for associating and disassociating user identifiers for switching client sessions in a server |
US7474741B2 (en) * | 2003-01-20 | 2009-01-06 | Avaya Inc. | Messaging advise in presence-aware networks |
EP1672855A1 (fr) * | 2004-12-15 | 2006-06-21 | France Telecom | Procédé de limitation du nombre de conversations simultanées dans une messagerie instantanée |
US8374643B2 (en) * | 2009-02-25 | 2013-02-12 | Research In Motion Limited | Systems and methods for facilitating push-to-talk (PTT) communications using SIP-based messaging |
CN103428070B (zh) * | 2012-05-17 | 2016-08-03 | 阿里巴巴集团控股有限公司 | 即时群体通信方法、会话管理服务器及客户端 |
CN105635180B (zh) * | 2016-03-04 | 2019-03-19 | 广州酷狗计算机科技有限公司 | 消息推送方法及装置 |
CN111651281A (zh) * | 2020-04-27 | 2020-09-11 | 北京中交兴路信息科技有限公司 | 一种消息发布和订阅方法和系统 |
-
2020
- 2020-12-28 CN CN202011595184.2A patent/CN112751748B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003242057A (ja) * | 2002-02-14 | 2003-08-29 | Nippon Telegr & Teleph Corp <Ntt> | 負荷分散方法および装置 |
WO2017219848A1 (zh) * | 2016-06-22 | 2017-12-28 | 中兴通讯股份有限公司 | 分布式数据库中id的处理方法、管理系统及服务器 |
KR20180113080A (ko) * | 2017-04-05 | 2018-10-15 | 라인 가부시키가이샤 | 데이터 송수신 방법 및 시스템 |
Non-Patent Citations (1)
Title |
---|
基于集群节点间即时拷贝的会话同步技术研究;曹海涛等;《计算机系统应用》(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112751748A (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112751748B (zh) | 会话消息管理方法、装置、服务器和可读存储介质 | |
US10771552B2 (en) | Content management | |
US9578081B2 (en) | System and method for providing an actively invalidated client-side network resource cache | |
US8023498B2 (en) | Controlling access to a destination in a data processing network | |
US20110264777A1 (en) | Communications device and method | |
US10795744B2 (en) | Identifying failed customer experience in distributed computer systems | |
WO2021237433A1 (zh) | 消息推送方法、装置、电子设备及计算机可读介质 | |
US20090240829A1 (en) | Translating between implicit and explicit publish-subscribe protocols | |
CN111679916B (zh) | 一种视频推荐方法、目标服务提供端、服务调用端及系统 | |
US20050091653A1 (en) | Method and apparatus for load sharing and data distribution in servers | |
CN111988387B (zh) | 接口请求处理方法、装置、设备及存储介质 | |
US10938993B2 (en) | Workload balancing technique for a telephone communication system | |
CN106411713B (zh) | 一种状态通知方法及服务器 | |
JP6947655B2 (ja) | マルチクラウドチャットサービス提供装置、マルチクラウドチャットサービス提供方法およびマルチクラウドチャットサービス提供プログラム | |
CN113315689B (zh) | 信息处理方法、系统、电子设备和可读存储介质 | |
CN114490100A (zh) | 一种消息队列遥测传输负载均衡方法、装置及服务器 | |
CN115190091A (zh) | 一种业务消息的推送方法和装置 | |
KR100297256B1 (ko) | 클라이언트-서버통신구조의지능망서비스시스템에서고객관리요구분산처리방법 | |
WO2024098748A1 (zh) | 通信方法、系统、客户端、网关设备及全局负载均衡设备 | |
EP1806904A1 (en) | Method for managing electronic information, the related user terminal and the related information source | |
CN115665210A (zh) | 一种用户问题处理方法、用户问题处理装置及客服系统 | |
CN101771621A (zh) | 即时通信的方法、装置和系统 | |
KR20080069367A (ko) | 인스턴트 메신저 서비스 방법 | |
JP2018133024A (ja) | サービス提供サーバ、サービス提供方法およびサービス提供プログラム |
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 |