CN113839853A - 一种高并发聊天室消息分发方法及装置 - Google Patents
一种高并发聊天室消息分发方法及装置 Download PDFInfo
- Publication number
- CN113839853A CN113839853A CN202110977192.1A CN202110977192A CN113839853A CN 113839853 A CN113839853 A CN 113839853A CN 202110977192 A CN202110977192 A CN 202110977192A CN 113839853 A CN113839853 A CN 113839853A
- Authority
- CN
- China
- Prior art keywords
- message
- client
- chat room
- user
- connection layer
- 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.)
- Granted
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]
- 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/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- 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/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/10—Multimedia information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提出了一种高并发聊天室消息分发方法及装置,涉及即时通信技术领域。该方法包括:连接层接收客户端消息,对客户端消息解码得到解码消息,将解码消息转发至业务层。业务层对解码消息进行解密,若解密成功得到客户端消息,则对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。第三方集成逻辑SDK,消息队列通过逻辑SDK将添加了协议头的客户端消息分发至第三方。最后将第三方处理得到的用户消息下发至当前聊天室的所有客户端。第三方集成的逻辑SDK调用消息队列中的客户端消息,避免了当聊天室中发送的消息并发量过高时,聊天室消息延迟增大的问题。从而灵活应对业务突增,为用户提供低延迟且流畅的聊天室服务。
Description
技术领域
本发明涉及即时通信技术领域,具体而言,涉及一种高并发聊天室消息分发方法及装置。
背景技术
随着互联网的高速发展,即时通信已成为人们生活中不可或缺的交流手段,在平时的休闲娱乐及工作中即时通信都得到了广泛的应用。聊天室作为一种新兴的即时通信方式,备受人们青睐。并且迅速由秀场直播、游戏直播等进入到企业领域,切入到教育、培训、会议、电商、营销等各个业务场景。在直播等业务场景中,聊天室承担着消息通信的重要的作用。
对于互联网环境下的直播聊天室,用户每发送一条消息,该消息都会首先传输到服务器,然后经由该服务器分发到该聊天室中的其他每个用户。但是当直播聊天室的用户较多,并且集中在热度比较高的直播时段,在直播聊天室中发送消息时,容易使得消息的并发量增大。当直播聊天室中发送的消息的并发量大于服务器的出口带宽时,会使得聊天室的消息难以发送出去,从而使得聊天室的消息的延迟增大,降低了聊天室的用户的体验。
发明内容
本发明的目的在于提供一种高并发聊天室消息分发方法及装置,其能够在业务突增的时候,承载消息的高并发量,从而减小聊天室的消息延迟,为用户提供低延迟且流畅的聊天室服务。
本发明的实施例是这样实现的:
第一方面,本申请实施例提供一种高并发聊天室消息分发方法,其包括如下步骤:连接层接收客户端消息,对客户端消息进行解码得到解码消息,并将解码消息转发至业务层。业务层对解码消息进行解密,若解密成功得到客户端消息,则对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。第三方集成逻辑SDK,消息队列通过逻辑SDK将添加了协议头的客户端消息分发至第三方。第三方对添加了协议头的客户端消息进行处理得到用户消息,并将用户消息经由消息队列发送至业务层。业务层对用户消息进行加密,并将加密后的用户消息经由消息队列发送至连接层。连接层接收加密后的用户消息,并下发至当前聊天室的所有客户端。
在本发明的一些实施例中,上述连接层接收客户端消息的步骤之前,该方法还包括:实时监测聊天室所有客户端的情况,当检测到聊天室中任一客户端发送消息时,对消息进行加密并编码得到客户端消息,并将客户端消息发送至连接层。
在本发明的一些实施例中,上述实时监测聊天室所有客户端的情况的步骤之前,该方法还包括:当用户进入聊天室时,获取用户的ip和port。
在本发明的一些实施例中,上述连接层与聊天室所有客户端建立长连接。
在本发明的一些实施例中,上述连接层与业务层建立长连接。
在本发明的一些实施例中,上述业务层对解码消息进行解密的步骤包括:若解密失败则抛弃解码消息。
第二方面,本申请实施例提供一种高并发聊天室消息分发装置,其包括:连接层解码模块,用于连接层接收客户端消息,对客户端消息进行解码得到解码消息,并将解码消息转发至业务层。协议头添加模块,用于业务层对解码消息进行解密,若解密成功得到客户端消息,则对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。消息分发模块,用于第三方集成逻辑SDK,消息队列通过逻辑SDK将添加了协议头的客户端消息分发至第三方。用户消息得到模块,用于第三方对添加了协议头的客户端消息进行处理得到用户消息,并将用户消息经由消息队列发送至业务层。连接层接收模块,用于业务层对用户消息进行加密,并将加密后的用户消息经由消息队列发送至连接层。用户消息广播模块,用于连接层接收加密后的用户消息,并下发至当前聊天室的所有客户端。
在本发明的一些实施例中,上述高并发聊天室消息分发装置还包括:客户端消息获取模块,用于实时监测聊天室所有客户端的情况,当检测到聊天室中任一客户端发送消息时,对消息进行加密并编码得到客户端消息,并将客户端消息发送至连接层。
在本发明的一些实施例中,上述高并发聊天室消息分发装置还包括:ip+port获取模块,用于当用户进入聊天室时,获取用户的ip和port。
在本发明的一些实施例中,上述连接层与客户端建立长连接。
在本发明的一些实施例中,上述连接层与业务层建立长连接。
在本发明的一些实施例中,上述协议头添加模块包括:解码消息抛弃单元,用于若解密失败则抛弃解码消息。
第三方面,本申请实施例提供一种电子设备,其包括存储器,用于存储一个或多个程序;处理器。当一个或多个程序被处理器执行时,实现如上述第一方面中任一项的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项的方法。
相对于现有技术,本发明的实施例至少具有如下优点或有益效果:
本发明提供一种高并发聊天室消息分发方法及装置,其包括如下步骤:连接层接收客户端消息,对客户端消息进行解码得到解码消息,并将解码消息转发至业务层。业务层对解码消息进行解密,若解密成功得到客户端消息,则对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。第三方集成逻辑SDK,消息队列通过逻辑SDK将添加了协议头的客户端消息分发至第三方。第三方对添加了协议头的客户端消息进行处理得到用户消息,并将用户消息经由消息队列发送至业务层。业务层对用户消息进行加密,并将加密后的用户消息经由消息队列发送至连接层。连接层接收加密后的用户消息,并下发至当前聊天室的所有客户端。当任一客户端发送消息时,连接层能够接收客户端消息,对客户端消息进行解码后,将解码后的客户端消息发送至业务层。业务层接收到连接层发送的解码消息后,对解码消息进行解密,当业务层成功解密解码消息得到客户端消息后,业务层对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。第三方通过集成的逻辑SDK获得消息队列中增加了协议头的客户端消息。则无需业务层对大量消息依次进行处理后分发,而是消息队列直接通过逻辑SDK将客户端消息分发至第三方,避免了当聊天室中发送的消息并发量过高时,聊天室的消息难以发送出去而造成聊天室消息延迟增大的问题。第三方对添加了协议头的客户端消息进行处理并将处理得到的用户消息通过消息队列发送至业务层。业务层将加密后的用户消息经由消息队列发送至连接层,连接层再下发用户消息至当前聊天室的所有在线的客户端,以使当前聊天室的所有在线用户看到任一客户端发送出来的客户端消息。该方法通过第三方集成的逻辑SDK调用消息队列中添加了协议头的客户端消息,避免了当聊天室中发送的消息并发量过高时,聊天室的消息难以发送出去而造成聊天室消息延迟增大的问题,达到了在业务突增时,可以承载消息的高并发并处理大量消息的效果,从而灵活应对业务突增,减小聊天室的消息延迟,为用户提供低延迟且流畅的聊天室服务。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种高并发聊天室消息分发方法的流程图;
图2为本发明实施例提供的另一种高并发聊天室消息分发方法的流程图;
图3为本发明实施例提供的一种高并发聊天室消息分发装置的结构示意图;
图4为本发明实施例提供的一种电子设备的示意性结构框图。
图标:100-高并发聊天室消息分发装置;110-连接层解码模块;120-协议头添加模块;130-消息分发模块;140-用户消息得到模块;150-连接层接收模块;160-用户消息广播模块;101-存储器;102-处理器;103-通信接口。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,若出现术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,若出现由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,若出现术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的各个实施例及实施例中的各个特征可以相互组合。
实施例
请参照图1和图2,图1所示为本申请实施例提供的一种高并发聊天室消息分发方法的流程图,图2所示为本申请实施例提供的另一种高并发聊天室消息分发方法的流程图。一种高并发聊天室消息分发方法,其包括如下步骤:
S110:连接层接收客户端消息,对客户端消息进行解码得到解码消息,并将解码消息转发至业务层;
具体的,上述连接层具有链路维护、连接的功能,即连接层能同时与聊天室所有客户端及业务层建立长连接,并且可以维护连接层与聊天室所有客户端以及连接层与业务层之间的通信。当聊天室用户增多时,连接层可以根据用户在线情况进行动态扩容。且连接层具有编解码功能,即当任一客户端发送消息时,连接层能够接收客户端消息,并对客户端消息进行解码。此外,连接层还具有下发消息和转发消息的功能,则连接层可以将解码后的客户端消息发送至业务层。
S120:业务层对解码消息进行解密,若解密成功得到客户端消息,则对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列;
业务层具有通信维护的功能,即业务层可以对业务层与连接层的通信协议以及业务层与第三方的通信协议进行维护,且具有下行加工、加解密、上行转发的功能,即业务层可以对接收到的消息进行包装加工后再进行转发。具体的,业务层将对连接层发送的解码消息进行解密。若业务层成功解密上述解码消息,则可以得到客户端消息。紧接着,业务层对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。若业务层未成功解密上述解码消息,则直接抛弃上述解码消息。示例性的,当上述解码消息包含有违法信息时,上述解码消息是不能成功解密的,则直接将上述解码消息抛弃即可。
S130:第三方集成逻辑SDK,消息队列通过逻辑SDK将添加了协议头的客户端消息分发至第三方;
具体的,第三方可以集成逻辑SDK,第三方通过逻辑SDK获得消息队列中增加了协议头的客户端消息,并对客户端消息进行处理。则无需业务层对大量消息依次进行处理后分发,而是消息队列直接通过逻辑SDK将客户端消息分发至第三方,可以避免当聊天室中发送的消息并发量过高时,聊天室的消息难以发送出去而造成聊天室消息延迟增大的问题,达到了在业务突增时,承载消息的高并发并处理大量消息的效果,从而减小聊天室的消息延迟,为用户提供低延迟且流畅的聊天室服务。示例性的,第三方可以是直播业务或其他业务。
上述逻辑SDK封装了对接业务层的API,方便了第三方的快速接入。则当多个第三方接入业务层时,第三方直接利用自身集成的逻辑SDK调用消息队列中添加了协议头的客户端消息即可,则多个第三方可以快速接入业务层,从而大幅节省了时间。
S140:第三方对添加了协议头的客户端消息进行处理得到用户消息,并将用户消息经由消息队列发送至业务层;
具体的,第三方根据自身业务特色对添加了协议头的客户端消息进行处理,以得到用户消息,并将用户消息通过消息队列发送至业务层。示例性的,当第三方为直播业务时,直播业务根据直播业务的需要对客户端消息进行处理,并将处理后的客户端消息经由消息队列发送至业务层。
S150:业务层对用户消息进行加密,并将加密后的用户消息经由消息队列发送至连接层;
具体的,由于业务层具有下行加工、加解密、上行转发的功能,则业务层可以对用户消息进行加密,并将加密后的用户消息经由消息队列转发至连接层。
S160:连接层接收加密后的用户消息,并下发至当前聊天室的所有客户端。
具体的,由于连接层具有下发消息和转发消息的功能,则连接层可以将业务层发来的用户消息发送至当前聊天室的所有在线的客户端,以使当前聊天室的所有在线用户看到任一客户端发送出来的客户端消息。
需要说明的是,上述消息队列相当于在消息的传输过程中用于保存消息的容器。消息队列的主要目的是提供路由并保证消息的传递;当发送消息时,如果接收者不可用,则消息队列会保留消息,直到可以成功地传递消息为止。
上述实现过程中,连接层同时与聊天室所有客户端及业务层建立长连接,当任一客户端发送消息时,连接层能够接收客户端消息,对客户端消息进行解码后,将解码后的客户端消息发送至业务层。业务层接收到连接层发送的解码消息后,对解码消息进行解密,当业务层成功解密解码消息得到客户端消息后,业务层对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。第三方通过集成的逻辑SDK获得消息队列中增加了协议头的客户端消息。则无需业务层对大量消息依次进行处理后分发,而是消息队列直接通过逻辑SDK将客户端消息分发至第三方,避免了当聊天室中发送的消息并发量过高时,聊天室的消息难以发送出去而造成聊天室消息延迟增大的问题。第三方对添加了协议头的客户端消息进行处理并将处理得到的用户消息通过消息队列发送至业务层。业务层将加密后的用户消息经由消息队列发送至连接层,连接层再下发用户消息至当前聊天室的所有在线的客户端,以使当前聊天室的所有在线用户看到任一客户端发送出来的客户端消息。该方法通过第三方集成的逻辑SDK调用消息队列中添加了协议头的客户端消息,避免了当聊天室中发送的消息并发量过高时,聊天室的消息难以发送出去而造成聊天室消息延迟增大的问题,达到了在业务突增时,可以承载消息的高并发并处理大量消息的效果,从而灵活应对业务突增,减小聊天室的消息延迟,为用户提供低延迟且流畅的聊天室服务。
在本实施例的一些实施方式中,上述连接层接收客户端消息的步骤之前,该方法还包括:实时监测聊天室所有客户端的情况,当检测到聊天室中任一客户端发送消息时,对消息进行加密并编码得到客户端消息,并将客户端消息发送至连接层。具体的,实时监测聊天室所有客户端的情况,包括登录聊天室的所有客户端的在线情况,以及每个客户端是否有消息发送。当聊天室中任一客户端发送消息时,聊天室将对客户端发送的消息进行加密并编码,以保证客户端消息的完整性,再将加密编码后的客户端消息发送至连接层,避免在客户端消息的传输过程中,客户端消息遭到损坏或部分信息缺失。
在本实施例的一些实施方式中,上述实时监测聊天室所有客户端的情况的步骤之前,该方法还包括:当用户进入聊天室时,获取用户的ip和port。具体的,连接层具有连接的功能,当用户进入聊天室时,连接层与客户端建立长连接,获取并保存客户端的ip和port。
在本实施例的一些实施方式中,上述连接层与聊天室所有客户端建立长连接。从而当任一客户端发送消息时,连接层可以及时接收客户端消息。连接层也可以及时将加密后的用户消息下发至客户端。保证了连接层与聊天室所有客户端之间消息传输的及时性。
在本实施例的一些实施方式中,上述连接层与业务层建立长连接,以此保证了连接层与业务层之间消息传输的及时性。
在本实施例的一些实施方式中,上述业务层对解码消息进行解密的步骤包括:若解密失败则抛弃解码消息。示例性的,当解码消息包含有违法信息时,解码消息是不能成功解密的,则直接将上述解码消息抛弃即可。
请参照图3,图3所示为本申请实施例提供的一种高并发聊天室消息分发装置100的结构示意图。一种高并发聊天室消息分发装置100包括:连接层解码模块110,用于连接层接收客户端消息,对客户端消息进行解码得到解码消息,并将解码消息转发至业务层。协议头添加模块120,用于业务层对解码消息进行解密,若解密成功得到客户端消息,则对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。消息分发模块130,用于第三方集成逻辑SDK,消息队列通过逻辑SDK将添加了协议头的客户端消息分发至第三方。用户消息得到模块140,用于第三方对添加了协议头的客户端消息进行处理得到用户消息,并将用户消息经由消息队列发送至业务层。连接层接收模块150,用于业务层对用户消息进行加密,并将加密后的用户消息经由消息队列发送至连接层。用户消息广播模块160,用于连接层接收加密后的用户消息,并下发至当前聊天室的所有客户端。具体的,当任一客户端发送消息时,通过连接层解码模块110接收客户端消息,并对客户端消息进行解码,将解码后的客户端消息发送至业务层。通过协议头添加模块120对连接层发送的解码消息进行解密,当解密成功得到客户端消息后,对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。通过消息分发模块130,消息队列通过第三方集成的逻辑SDK将添加了协议头的客户端消息分发至第三方,可以避免当聊天室中发送的消息并发量过高时,聊天室的消息难以发送出去而造成聊天室消息延迟增大的问题,达到了在业务突增时,承载消息的高并发并处理大量消息的效果,从而减小聊天室的消息延迟,为用户提供低延迟且流畅的聊天室服务。第三方处理得到的用户消息依次通过用户消息得到模块140、连接层接收模块150、用户消息广播模块160下发至当前聊天室的所有客户端。
在本实施例的一些实施方式中,上述高并发聊天室消息分发装置100还包括:客户端消息获取模块,用于实时监测聊天室所有客户端的情况,当检测到聊天室中任一客户端发送消息时,对消息进行加密并编码得到客户端消息,并将客户端消息发送至连接层。具体的,通过客户端消息获取模块实时监测聊天室所有客户端的情况,则当聊天室中任一客户端发送消息时,聊天室将对客户端发送的消息进行加密并编码,以保证客户端消息的完整性,再将加密编码后的客户端消息发送至连接层,避免在客户端消息的传输过程中,客户端消息遭到损坏或部分信息缺失。
在本实施例的一些实施方式中,上述高并发聊天室消息分发装置100还包括:ip+port获取模块,用于当用户进入聊天室时,获取用户的ip和port。
在本实施例的一些实施方式中,上述连接层与客户端建立长连接。从而保证了连接层与聊天室所有客户端之间消息传输的及时性。
在本实施例的一些实施方式中,上述连接层与业务层建立长连接,以此保证了连接层与业务层之间消息传输的及时性。
在本实施例的一些实施方式中,上述协议头添加模块120包括:解码消息抛弃单元,用于若解密失败则抛弃解码消息。若解码消息包含有违法信息,则解码消息是不能成功解密的,则直接将上述解码消息抛弃即可。
请参阅图4,图4为本申请实施例提供的电子设备的一种示意性结构框图。电子设备包括存储器101、处理器102和通信接口103,该存储器101、处理器102和通信接口103相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器101可用于存储软件程序及模块,如本申请实施例所提供的一种高并发聊天室消息分发装置100对应的程序指令/模块,处理器102通过执行存储在存储器101内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口103可用于与其他节点设备进行信令或数据的通信。
其中,存储器101可以是但不限于,随机存取存储器101(Random Access Memory,RAM),只读存储器101(Read Only Memory,ROM),可编程只读存储器101(ProgrammableRead-Only Memory,PROM),可擦除只读存储器101(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器101(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。
处理器102可以是一种集成电路芯片,具有信号处理能力。该处理器102可以是通用处理器102,包括中央处理器102(Central Processing Unit,CPU)、网络处理器102(Network Processor,NP)等;还可以是数字信号处理器102(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以理解,图4所示的结构仅为示意,电子设备还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器101(ROM,Read-Only Memory)、随机存取存储器101(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
综上所述,本申请实施例提供的一种高并发聊天室消息分发方法及装置,其包括如下步骤:连接层接收客户端消息,对客户端消息进行解码得到解码消息,并将解码消息转发至业务层。业务层对解码消息进行解密,若解密成功得到客户端消息,则对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。第三方集成逻辑SDK,消息队列通过逻辑SDK将添加了协议头的客户端消息分发至第三方。第三方对添加了协议头的客户端消息进行处理得到用户消息,并将用户消息经由消息队列发送至业务层。业务层对用户消息进行加密,并将加密后的用户消息经由消息队列发送至连接层。连接层接收加密后的用户消息,并下发至当前聊天室的所有客户端。上述实现过程中,连接层同时与聊天室所有客户端及业务层建立长连接,当任一客户端发送消息时,连接层能够接收客户端消息,对客户端消息进行解码后,将解码后的客户端消息发送至业务层。业务层接收到连接层发送的解码消息后,对解码消息进行解密,当业务层成功解密解码消息得到客户端消息后,业务层对客户端消息添加协议头,并将添加了协议头的客户端消息发送到消息队列。第三方通过集成的逻辑SDK获得消息队列中增加了协议头的客户端消息。则无需业务层对大量消息依次进行处理后分发,而是消息队列直接通过逻辑SDK将客户端消息分发至第三方,可以避免当聊天室中发送的消息并发量过高时,聊天室的消息难以发送出去而造成聊天室消息延迟增大的问题,达到了在业务突增时,能够承载消息的高并发并处理大量消息的效果,从而减小聊天室的消息延迟,为用户提供低延迟且流畅的聊天室服务。第三方对添加了协议头的客户端消息进行处理并将处理得到的用户消息通过消息队列发送至业务层。业务层将加密后的用户消息经由消息队列发送至连接层,连接层再下发用户消息至当前聊天室的所有在线的客户端,以使当前聊天室的所有在线用户看到任一客户端发送出来的客户端消息。该方法及装置通过第三方集成的逻辑SDK调用消息队列中添加了协议头的客户端消息,而无需业务层对大量消息依次进行处理后分发,避免了当聊天室中发送的消息并发量过高时,聊天室的消息难以发送出去而造成聊天室消息延迟增大的问题,达到了在业务突增时,可以承载消息的高并发并处理大量消息的效果,从而减小聊天室的消息延迟,为用户提供低延迟且流畅的聊天室服务。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (10)
1.一种高并发聊天室消息分发方法,其特征在于,包括如下步骤:
连接层接收客户端消息,对所述客户端消息进行解码得到解码消息,并将所述解码消息转发至业务层;
所述业务层对所述解码消息进行解密,若解密成功得到所述客户端消息,则对所述客户端消息添加协议头,并将添加了所述协议头的所述客户端消息发送到消息队列;
第三方集成逻辑SDK,所述消息队列通过所述逻辑SDK将添加了所述协议头的所述客户端消息分发至所述第三方;
所述第三方对添加了所述协议头的所述客户端消息进行处理得到用户消息,并将所述用户消息经由消息队列发送至所述业务层;
所述业务层对所述用户消息进行加密,并将加密后的所述用户消息经由消息队列发送至所述连接层;
所述连接层接收加密后的所述用户消息,并下发至当前聊天室的所有客户端。
2.根据权利要求1所述的高并发聊天室消息分发方法,其特征在于,连接层接收客户端消息的步骤之前,所述方法还包括:
实时监测聊天室所有客户端的情况,当检测到聊天室中任一客户端发送消息时,对所述消息进行加密并编码得到客户端消息,并将所述客户端消息发送至连接层。
3.根据权利要求2所述的高并发聊天室消息分发方法,其特征在于,实时监测聊天室所有客户端的情况的步骤之前,所述方法还包括:
当用户进入所述聊天室时,获取用户的ip和port。
4.根据权利要求1所述的高并发聊天室消息分发方法,其特征在于,所述连接层与所述客户端建立长连接。
5.根据权利要求1所述的高并发聊天室消息分发方法,其特征在于,所述连接层与所述业务层建立长连接。
6.根据权利要求1所述的高并发聊天室消息分发方法,其特征在于,所述业务层对所述解码消息进行解密的步骤包括:
若解密失败则抛弃所述解码消息。
7.一种高并发聊天室消息分发装置,其特征在于,包括:
连接层解码模块,用于连接层接收客户端消息,对所述客户端消息进行解码得到解码消息,并将所述解码消息转发至业务层;
协议头添加模块,用于所述业务层对所述解码消息进行解密,若解密成功得到所述客户端消息,则对所述客户端消息添加协议头,并将添加了所述协议头的所述客户端消息发送到消息队列;
消息分发模块,用于第三方集成逻辑SDK,所述消息队列通过所述逻辑SDK将添加了所述协议头的所述客户端消息分发至所述第三方;
用户消息得到模块,用于所述第三方对添加了所述协议头的所述客户端消息进行处理得到用户消息,并将所述用户消息经由消息队列发送至所述业务层;
连接层接收模块,用于所述业务层对所述用户消息进行加密,并将加密后的所述用户消息经由消息队列发送至所述连接层;
用户消息广播模块,用于所述连接层接收加密后的所述用户消息,并下发至当前聊天室的所有客户端。
8.根据权利要求7所述的高并发聊天室消息分发装置,其特征在于,还包括:
客户端消息获取模块,用于实时监测聊天室所有客户端的情况,当检测到聊天室中任一客户端发送消息时,对所述消息进行加密并编码得到客户端消息,并将所述客户端消息发送至连接层。
9.一种电子设备,其特征在于,包括:
存储器,用于存储一个或多个程序;
处理器;
当所述一个或多个程序被所述处理器执行时,实现如权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110977192.1A CN113839853B (zh) | 2021-08-24 | 2021-08-24 | 一种高并发聊天室消息分发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110977192.1A CN113839853B (zh) | 2021-08-24 | 2021-08-24 | 一种高并发聊天室消息分发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113839853A true CN113839853A (zh) | 2021-12-24 |
CN113839853B CN113839853B (zh) | 2023-02-28 |
Family
ID=78961172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110977192.1A Active CN113839853B (zh) | 2021-08-24 | 2021-08-24 | 一种高并发聊天室消息分发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113839853B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102118325A (zh) * | 2010-11-30 | 2011-07-06 | 北京迅捷英翔网络科技有限公司 | 一种配置聊天客户终端的方法及装置、聊天客户终端 |
CN103164256A (zh) * | 2011-12-08 | 2013-06-19 | 深圳市快播科技有限公司 | 一种实现单机支持高并发处理方法及系统 |
WO2016161857A1 (zh) * | 2015-04-09 | 2016-10-13 | 北京易掌云峰科技有限公司 | 一种多租户高并发的即时通讯云平台 |
CN108173917A (zh) * | 2017-12-22 | 2018-06-15 | 杭州顺网珑腾信息技术有限公司 | 一种分布式无上限的网络聊天室消息转发系统 |
CN108418743A (zh) * | 2018-01-16 | 2018-08-17 | 北京奇艺世纪科技有限公司 | 一种聊天室消息分发方法、装置及电子设备 |
JP2020201960A (ja) * | 2019-06-11 | 2020-12-17 | ライン プラス コーポレーションLINE Plus Corporation | チャットルーム提供方法およびシステム |
CN112436997A (zh) * | 2020-11-10 | 2021-03-02 | 杭州米络星科技(集团)有限公司 | 聊天室的消息分发方法、消息分发系统及电子设备 |
-
2021
- 2021-08-24 CN CN202110977192.1A patent/CN113839853B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102118325A (zh) * | 2010-11-30 | 2011-07-06 | 北京迅捷英翔网络科技有限公司 | 一种配置聊天客户终端的方法及装置、聊天客户终端 |
CN103164256A (zh) * | 2011-12-08 | 2013-06-19 | 深圳市快播科技有限公司 | 一种实现单机支持高并发处理方法及系统 |
WO2016161857A1 (zh) * | 2015-04-09 | 2016-10-13 | 北京易掌云峰科技有限公司 | 一种多租户高并发的即时通讯云平台 |
CN108173917A (zh) * | 2017-12-22 | 2018-06-15 | 杭州顺网珑腾信息技术有限公司 | 一种分布式无上限的网络聊天室消息转发系统 |
CN108418743A (zh) * | 2018-01-16 | 2018-08-17 | 北京奇艺世纪科技有限公司 | 一种聊天室消息分发方法、装置及电子设备 |
JP2020201960A (ja) * | 2019-06-11 | 2020-12-17 | ライン プラス コーポレーションLINE Plus Corporation | チャットルーム提供方法およびシステム |
CN112436997A (zh) * | 2020-11-10 | 2021-03-02 | 杭州米络星科技(集团)有限公司 | 聊天室的消息分发方法、消息分发系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113839853B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100880740B1 (ko) | 멀티미디어 메시징 방법 및 시스템 | |
US8229480B2 (en) | Methods, systems, and computer program products for transferring a message service payload between messaging entities | |
CN107483505B (zh) | 一种对视频聊天中的用户隐私进行保护的方法及系统 | |
US11336734B1 (en) | System and method for aggregating communication connections | |
KR101652871B1 (ko) | 이메일 대화의 보호 | |
US20070168436A1 (en) | System and method for supplying electronic messages | |
US20020129243A1 (en) | System for selective encryption of data packets | |
EP1687975B1 (fr) | Diffusion sécurisée et personnalisée de flux audiovisuels par un systeme hybride unicast/multicast | |
US9491003B2 (en) | Method and apparatus for keeping orders among messages of discrete media type in CPM session | |
CN104410619A (zh) | 即时通信方法及系统 | |
EP2560329B1 (en) | Method and processing system for routing a message request | |
US20170359187A1 (en) | Scalable real-time videoconferencing over WebRTC | |
KR100999285B1 (ko) | 멀티미디어 컨텐트 플로우들을 생성하고 분산 네트워크로전달하기 위한 방법 및 장치 | |
CN109951378B (zh) | 一种即时通信中的文件加密传输与共享方法 | |
CN113839853B (zh) | 一种高并发聊天室消息分发方法及装置 | |
US10063648B2 (en) | Relaying mobile communications | |
ES2347236T3 (es) | Transmision continua de contenidos de medios en un servicio de mensajeria multimedia. | |
WO2012116565A1 (zh) | 媒体消息处理方法及装置 | |
JP4319539B2 (ja) | マルチキャストサポートのための方法及び装置 | |
CN107835150B (zh) | 一种全媒体客服调度方法及系统 | |
CN112312152B (zh) | 网络直播中的数据处理系统 | |
JP2004536517A5 (zh) | ||
US9648120B2 (en) | Integration of intentional noise into a communication channel to simulate activity | |
CN112751842A (zh) | 一种高性能的即时通讯方法 | |
CN106912029B (zh) | 即时消息广播的方法、系统及基站 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |