掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本公开涉及即时通讯技术领域,尤其涉及一种即时通讯数据的交互方法、装置、设备及存储介质。

背景技术

现有的即时通讯软件被越来越多的企业和个人运用于交互信息,即时通讯的功能日益丰富,即时通讯软件在现实信息交互时通常附带有其他的功能,例如,除了可以进行文本聊天外,还可以发送表情符号、文本传输、语音和视频聊天,满足了人们的社交需求。

即时通讯已经成为我们日常生活中,不可或缺的重要组成部分,考虑到即时通讯数据的安全性,很多用户不愿意将即时通讯的聊天内容被第三方监管,因此IM通讯软件的应用便满足了部分用户的安全通讯需求。

在相关技术中,IM通讯软件在单聊、群聊消息的分发过程中存在效率较低,在大量群聊消息分发的过程中影响用户的单聊消息体验,在大量群聊消息突发事件的情况下IM服务器的性能负载较低的问题。

发明内容

有鉴于此,本公开实施例提供了一种即时通讯数据的交互方法、装置、设备及存储介质,能够缓解IM服务器在转发单聊消息和群聊消息时的负载压力,可以提高单聊消息和群聊消息的分发效率,提高了IM服务器的性能负载,以在大量群聊消息分发过程中提高用户的单聊消息体验。

第一方面,本公开实施例提供了一种即时通讯数据的交互方法,采用如下技术方案:

当检测到目标客户端的登录成功信息后,在分布式应用程序协调服务软件Zookeeper集群的多个IM服务器中选择目标IM服务器;

获取所述目标IM服务器的IP地址,并将所述IP地址发送到所述目标客户端;

所述目标IM服务器接收所述目标客户端发送的长连接请求;

当所述目标IM服务器对所述长连接请求验证通过时,建立与所述目标客户端的长连接,并保持与所述目标客户端的心跳连接。

在一些实施例中,所述方法还包括:

当检测到所述目标客户端的登录成功信息后,将所述目标客户端的登录状态信息和路由信息保存到Redis;或者,

当检测到所述目标客户端的下线信息后,在Redis上清除所述目标客户端的状态信息和路由信息。

在一些实施例中,所述方法还包括:

当所述目标IM服务器对所述长连接请求在预设时间阈值内未验证通过时,则发出提示信息,其中,所述提示信息用于提示所述长连接请求验证失败,或者,提示所述目标客户端是否继续进行所述长连接请求的验证。

在一些实施例中,所述方法还包括:

通过路由服务器的登录接口接收所述目标客户端的业务验证请求;

当所述业务验证请求符合预设条件后,将所述目标客户端发送的所述长连接请求转发至所述目标IM服务器。

在一些实施例中,当所述目标IM服务器对所述长连接请求验证通过时,建立与所述目标客户端的长连接,包括:

当所述长连接请求验证通过时,建立所述目标客户端的ID信息和通道的映射关系,并保存所述映射关系;

缓存所述目标客户端的ID信息以及用户名信息。

在一些实施例中,所述方法还包括:

通过scan命令遍历路由服务器的全部通道;

依次调用每个通道所连接的客户端对应的服务器的HTTP接口,通过所述HTTP接口向所述客户端发送通信消息。

在一些实施例中,所述方法还包括:

通过用户输入的olu命令获取全部在线的客户端;

接收用户输入的关键词,并触发发送所述通信消息至所述关键词所对应的目标客户端,其中,所述目标客户端为全部在线的所述客户端中的之一。

第二方面,本公开实施例还提供了一种即时通讯数据的交互装置,采用如下技术方案:

筛选单元,被配置为当检测到目标客户端的登录成功信息后,在分布式应用程序协调服务软件Zookeeper集群的多个IM服务器中选择目标IM服务器;

获取单元,被配置为获取所述目标IM服务器的IP地址,并将所述IP地址发送到所述目标客户端;

接收单元,被配置为所述目标IM服务器接收所述目标客户端发送的长连接请求;

长连接建立单元,被配置为当所述目标IM服务器对所述长连接请求验证通过时,建立与所述目标客户端的长连接,并保持所述目标IM服务器与所述目标客户端的心跳连接。

第三方面,本公开实施例还提供了一种电子设备,采用如下技术方案:

所述电子设备包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行以上任一所述的即时通讯数据的交互方法。

第四方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行以上任一所述的即时通讯数据的交互方法。

本公开实施例提供的一种即时通讯数据的交互方法、装置、设备及存储介质,通过在检测到目标客户端的登录成功信息后,在分布式应用程序协调服务软件Zookeeper集群的多个IM服务器中选择目标IM服务器;获取目标IM服务器的IP地址,并将IP地址发送到目标客户端;目标IM服务器接收目标客户端发送的长连接请求;当目标IM服务器对长连接请求验证通过时,建立与目标客户端的长连接,并保持与目标客户端的心跳连接。本申请解决了IM服务器转发单聊消息和群聊消息的负载压力,提高了单聊消息和群聊消息的分发效率,并且提高了IM服务器的性能负载,可以在大量群聊消息分发过程中提高用户的单聊消息体验。

上述说明仅是本公开技术方案的概述,为了能更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为让本公开的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本公开实施例提供的一种即时通讯数据的交互方法的流程示意图;

图2为本公开实施例提供的一种即时通讯数据的交互装置的结构示意图;

图3为本公开实施例提供的一种电子设备的原理框图。

具体实施方式

下面结合附图对本公开实施例进行详细描述。

应当明确,以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目各方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。

还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本公开的基本构想,图式中仅显示与本公开中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。

如图1所示,本公开实施例提供了一种即时通讯数据的交互方法,包括以下步骤:

S101、当检测到目标客户端的登录成功信息后,在分布式应用程序协调服务软件Zookeeper集群的多个IM服务器中选择目标IM服务器。

通过路由层的路由服务器Route将每个客户端的消息转发至相应的IM服务器,客户端和IM服务器之间通过传输控制协议TCP传输通信消息。

Zookeeper集群中每一个Zookeeper节点即为IM服务器,IM服务器将自身的服务信息发布到注册中心(即Zookeeper集群),客户端通过监听Zookeeper节点便可以获取目前可用的启动有Zookeeper服务的IM服务器。

可选地,对客户端和IM服务器之间的聊天内容等通信消息进行异步保存处理。

S102、获取目标IM服务器的IP地址,并将IP地址发送到目标客户端。

S103、目标IM服务器接收目标客户端发送的长连接请求。

S104、当目标IM服务器对长连接请求验证通过时,建立与目标客户端的长连接,并保持目标IM服务器与目标客户端的心跳连接。

本公开实施例通过在检测到目标客户端的登录成功信息后,在分布式应用程序协调服务软件Zookeeper集群的多个IM服务器中选择目标IM服务器;获取目标IM服务器的IP地址,并将IP地址发送到目标客户端;目标IM服务器接收目标客户端发送的长连接请求;当目标IM服务器对长连接请求验证通过时,建立与目标客户端的长连接,并保持与目标客户端的心跳连接。解决了IM服务器转发单聊消息和群聊消息的负载压力,提高了单聊消息和群聊消息的分发效率,并且提高了IM服务器的性能负载,可以在大量群聊消息分发过程中提高用户的单聊消息体验。

在一些实施例中,该方法还包括:

当目标IM服务器检测到目标客户端的登录成功信息后,将目标客户端的登录状态信息和路由信息保存到Redis;或者,

当目标IM服务器检测到目标客户端的下线信息后,在Redis上清除目标客户端的状态信息和路由信息。

可选地,保存目标客户端的登录状态信息和路由信息主要是通过处理会话session的方式,通过加密方式得到令牌,令牌用于访问Redis的数据。

可选地,为了保证目标客户端和目标IM服务器之间的数据安全传输,当目标客户端下线后,在Redis中清除目标客户端的基本信息,例如,目标客户端的状态信息和路由信息等。

在一些实施例中,该方法还包括:

当目标IM服务器对长连接请求在预设时间阈值内未验证通过时,则在目标客户端发出提示信息,其中,提示信息用于提示长连接请求验证失败,或者,提示目标客户端是否继续进行长连接请求的验证。

例如,可以设置预设时间阈值为5秒钟,当目标IM服务器在5秒钟内对长连接请求未验证通过时,则在目标客户端的显示界面上发出提示信息。可以对安全数据进行提示和处理,例如,安全数据可以包含加好友信息、身份验证信息等。需要说明的是,用户可以根据实际需求对安全数据进行设置,本公开实施例对此不做限定。

在一些实施例中,该方法还包括:

目标IM服务器通过路由服务器的登录接口接收目标客户端的业务验证请求;

当业务验证请求符合预设条件后,将目标客户端发送的长连接请求转发至目标IM服务器。

可选地,当判定业务验证请求符合预设条件后,即确认业务验证请求已通过验证。

在一些实施例中,当目标IM服务器对长连接请求验证通过时,建立与目标客户端的长连接,包括:

当长连接请求验证通过时,目标IM服务器建立目标客户端的ID信息和通道的映射关系,并保存映射关系;

缓存目标客户端的ID信息以及用户名信息至目标IM服务器。

可选地,目标客户端通过发送一个特殊报文的方式将长连接请求发送至目标IM服务器,其中,长连接请求中携带有目标客户端的ID信息和用户名信息等。

在一些实施例中,该方法还包括:

目标IM服务器通过scan命令遍历路由服务器的全部通道;

依次调用每个通道所连接的客户端对应的服务器的HTTP接口,通过HTTP接口向客户端发送通信消息。

可选地,由于Redis为单线程访问方式,若采用keys匹配路由服务器的全部通道数据,则会导致Redis不能处理其他请求,因此,本公开实施例通过scan命令来遍历路由服务器的全部通道,可以提高目标IM服务器转发单聊消息或群聊消息的分发效率,以缓解目标IM服务器的负载压力。

在一些实施例中,该方法还包括:

目标IM服务器通过用户输入的olu命令获取全部在线的客户端;

目标IM服务器接收用户输入的关键词,并触发发送通信消息至关键词所对应的目标客户端,其中,目标客户端为全部在线的客户端中的之一。

可选地,关键词可以采用“用户ID:消息内容”等格式,本公开实施例对此不做限定。

如图2所示,本公开实施例还提供了一种即时通讯数据的交互装置,包括:

筛选单元21,被配置为当检测到目标客户端的登录成功信息后,在分布式应用程序协调服务软件Zookeeper集群的多个IM服务器中选择目标IM服务器;

获取单元22,被配置为获取目标IM服务器的IP地址,并将IP地址发送到目标客户端;

接收单元23,被配置为目标IM服务器接收目标客户端发送的长连接请求;

长连接建立单元24,被配置为当目标IM服务器对长连接请求验证通过时,建立与目标客户端的长连接,并保持与目标客户端的心跳连接。

在一些实施例中,该装置还包括:

信息保存单元,被配置为当检测到目标客户端的登录成功信息后,将目标客户端的登录状态信息和路由信息保存到Redis;或者,

信息清楚单元,被配置为当检测到目标客户端的下线信息后,清除目标客户端的状态信息和路由信息。

在一些实施例中,该装置还包括:

信息提示单元,被配置为当目标IM服务器对长连接请求在预设时间阈值内未验证通过时,则发出提示信息,其中,提示信息用于提示长连接请求验证失败,或者,提示目标客户端是否继续进行长连接请求的验证。

在一些实施例中,该装置还包括:

业务请求接收单元,被配置为通过路由服务器的登录接口接收所述目标客户端的业务验证请求;

长连接请求转发单元,被配置为当所述业务验证请求符合预设条件后,将所述目标客户端发送的所述长连接请求转发至所述目标IM服务器。

在一些实施例中,该装置还包括:

遍历单元,被配置为通过scan命令遍历路由服务器的全部通道;

发送单元,被配置为依次调用每个通道所连接的客户端对应的服务器的HTTP接口,通过所述HTTP接口向所述客户端发送通信消息。

在一些实施例中,该装置还包括:

获取单元,被配置为通过用户输入的olu命令获取全部在线的客户端;

消息触发单元,被配置为接收用户输入的关键词,并触发发送所述通信消息至所述关键词所对应的目标客户端,其中,所述目标客户端为全部在线的所述客户端中的之一。

根据本公开实施例的电子设备包括存储器和处理器。该存储器用于存储非暂时性计算机可读指令。具体地,存储器可以包括一个或多个计算机程序产品,该计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。该易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。该非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。

该处理器可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制电子设备中的其它组件以执行期望的功能。在本公开的一个实施例中,该处理器用于运行该存储器中存储的该计算机可读指令,使得该电子设备执行前述的本公开各实施例的即时通讯数据的交互方法全部或部分步骤。

本领域技术人员应能理解,为了解决如何获得良好用户体验效果的技术问题,本实施例中也可以包括诸如通信总线、接口等公知的结构,这些公知的结构也应包含在本公开的保护范围之内。

如图3为本公开实施例提供的一种电子设备的结构示意图。其示出了适于用来实现本公开实施例中的电子设备的结构示意图。图3示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图3所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(ROM)中的程序或者从存储装置加载到随机访问存储器(RAM)中的程序而执行各种适当的动作和处理。在RAM中,还存储有电子设备操作所需的各种程序和数据。处理装置、ROM以及RAM通过总线彼此相连。输入/输出(I/O)接口也连接至总线。

通常,以下装置可以连接至I/O接口:包括例如传感器或者视觉信息采集设备等的输入装置;包括例如显示屏等的输出装置;包括例如磁带、硬盘等的存储装置;以及通信装置。通信装置可以允许电子设备与其他设备(比如边缘计算设备)进行无线或有线通信以交换数据。虽然图3示出了具有各种装置的电子设备,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装,或者从ROM被安装。在该计算机程序被处理装置执行时,执行本公开实施例的即时通讯数据的交互方法的全部或部分步骤,例如包括:

当检测到目标客户端的登录成功信息后,在分布式应用程序协调服务软件Zookeeper集群的多个IM服务器中选择目标IM服务器;

获取所述目标IM服务器的IP地址,并将所述IP地址发送到所述目标客户端;

所述目标IM服务器接收所述目标客户端发送的长连接请求;

当所述目标IM服务器对所述长连接请求验证通过时,建立与所述目标客户端的长连接,并保持与所述目标客户端的心跳连接。

有关本实施例的详细说明可以参考前述各实施例中的相应说明,在此不再赘述。

根据本公开实施例的计算机可读存储介质,其上存储有非暂时性计算机可读指令。当该非暂时性计算机可读指令由处理器运行时,执行前述的本公开各实施例的即时通讯数据的交互方法的全部或部分步骤,例如包括:

当检测到目标客户端的登录成功信息后,在分布式应用程序协调服务软件Zookeeper集群的多个IM服务器中选择目标IM服务器;

获取所述目标IM服务器的IP地址,并将所述IP地址发送到所述目标客户端;

所述目标IM服务器接收所述目标客户端发送的长连接请求;

当所述目标IM服务器对所述长连接请求验证通过时,建立与所述目标客户端的长连接,并保持与所述目标客户端的心跳连接。

上述计算机可读存储介质包括但不限于:光存储介质(例如:CD-ROM和DVD)、磁光存储介质(例如:MO)、磁存储介质(例如:磁带或移动硬盘)、具有内置的可重写非易失性存储器的媒体(例如:存储卡)和具有内置ROM的媒体(例如:ROM盒)。

有关本实施例的详细说明可以参考前述各实施例中的相应说明,在此不再赘述。

以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。

在本公开中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序,本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。

另外,如在此使用的,在以“至少一个”开始的项的列举中使用的“或”指示分离的列举,以便例如“A、B或C的至少一个”的列举意味着A或B或C,或AB或AC或BC,或ABC(即A和B和C)。此外,措辞“示例的”不意味着描述的例子是优选的或者比其他例子更好。

还需要指出的是,在本公开的系统和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。

可以不脱离由所附权利要求定义的教导的技术而进行对在此所述的技术的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上所述的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用与在此所述的相应方面进行基本相同的功能或者实现基本相同的结果的当前存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的组成、手段、方法或动作。

提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。

为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

相关技术
  • 数据库与客户端的数据交互方法、装置、存储介质和设备
  • 数据交互方法、装置、计算机设备和存储介质
  • 交互方法、交互装置、电子设备及存储介质
  • 一种语音交互设备唤醒方法、装置、设备及存储介质
  • 智能语音设备间的交互方法、装置、设备及存储介质
  • 即时通讯的数据交互方法、装置、设备及介质
  • 基于即时通讯的交互方法、装置、存储介质及计算机设备
技术分类

06120116074841