CN110545237A - 一种即时通讯方法、装置、系统、计算机设备和存储介质 - Google Patents
一种即时通讯方法、装置、系统、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110545237A CN110545237A CN201910953109.XA CN201910953109A CN110545237A CN 110545237 A CN110545237 A CN 110545237A CN 201910953109 A CN201910953109 A CN 201910953109A CN 110545237 A CN110545237 A CN 110545237A
- Authority
- CN
- China
- Prior art keywords
- user
- message
- access
- access device
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- 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/18—Commands or executable codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种即时通讯方法、装置、系统、计算机设备和存储介质,该方法包括:由所述接入器接收第一用户发送的消息;确定接收所述消息的第二用户;将所述第二用户划分至一个或多个分组中,同一个所述分组中的第二用户连接同一个接入器;根据所述消息生成适配所述分组的配置信息;由所述接入器按照所述配置信息、将所述消息发送至所述接入器对应分组中的第二用户。大大减少了消息在即时通讯系统中各个系统之间扩散的数量,从而大大降低了扩散系数,减少了扩散消息给即时通讯系统中各个系统带来的影响,从而降低了后台服务器的压力。
Description
技术领域
本发明实施例涉及即时通讯的技术,尤其涉及一种即时通讯方法、装置、系统、计算机设备和存储介质。
背景技术
随着互联网技术的发展,即时通讯(Instant Messenger,简称IM)由于其所拥有的实时性、低成本、高效率等诸多优势,迅速普及。即时通讯是一种基于互联网的即时交流消息的业务,其允许两人或多人使用网路即时的传递文字讯息、档案、语音与视频交流。
在即时通讯中,当某一位用户发出一条消息时,服务器需要把这条消息推送给其他用户,此时,这一条消息会扩散成多条消息在服务器各个系统中流传,扩散系数大,服务器压力较大。
例如,如果一位用户发出一条消息,待发送至一百位用户,此时一条消息会变成一百条在服务器各个系统中流传,扩散系数为一百,服务器处理消息的压力会直接放大一百倍。
为了降低服务器的压力,对于消息的处理,存在以下几种处理方案:
方案一:接收到消息后不推送,仅靠用户使用的客户端定时从服务器增量拉取消息。
但是,方案一的实时性较差,而且如果不活跃的情况较多,则定时拉取消息容易造成服务器查询空耗,即多次查询某些不活跃的会话时,都没有新的消息,但依然需要做查询这个动作,增加了服务器的压力。
方案二:丢弃消息。当服务器处理消息的压力较大时,丢弃部分消息。
但是,方案二由于存在主动丢弃消息的行为,所以方案二的用户体验较差。
发明内容
本发明实施例提供一种即时通讯方法、装置、系统、计算机设备和存储介质,以解决在即时通讯中如何兼顾消息的实时性与服务器的压力的问题。
第一方面,本发明实施例提供了一种即时通讯方法,应用于即时通讯系统,所述即时通讯系统具有多个接入器,所述接入器用于连接第一用户、第二用户,所述方法包括:
由所述接入器接收第一用户发送的消息;
确定接收所述消息的第二用户;
将所述第二用户划分至一个或多个分组中,同一个所述分组中的第二用户连接同一个接入器;
根据所述消息生成适配所述分组的配置信息;
由所述接入器按照所述配置信息、将所述消息发送至所述接入器对应分组中的第二用户。
可选地,所述确定接收所述消息的第二用户,包括:
确定所述第一用户发送所述消息时所处的群组;
确定位于所述群组中的用户为接收所述消息的第二用户。
可选地,所述将所述第二用户划分至一个或多个分组中,包括:
确定所述第二用户对应的用户标识;
查询所述用户标识对应的接入标识,所述接入标识用于表示接入器;
将相同接入标识对应的用户标识划分至同一个分组中。
可选地,所述根据所述消息生成适配所述分组的配置信息,包括:
确定所述第二用户对应的用户标识;
查询所述用户标识对应的接入标识、连接标识,所述接入标识用于表示接入器,所述连接标识用于表示连接;
针对每个分组,确定所述连接器的接入标识,至少将所述消息、所述分组中第二用户对应的连接标识、所述接入标识写入配置信息中;
将所述配置信息发送至所述接入标识对应的接入器。
可选地,所述由所述接入器按照所述配置信息,将所述消息发送至所述接入器对应分组中的第二用户,包括:
由所述接入器从所述配置信息中读取所述消息、所述分组中的第二用户对应的连接标识;
由所述接入器使用所述连接标识对应的连接,将所述消息发送至所述第二用户。
可选地,在所述通过某个所述接入器接收第一用户发送的消息之后,还包括:
对所述第一用户和/或所述消息进行合法性校验;
若未通过所述合法性校验,则忽略所述消息;
若通过所述合法性校验,则将所述消息存储至数据库中,以及,执行所述确定接收所述消息的第二用户。
第二方面,本发明实施例还提供了一种即时通讯装置,应用于即时通讯系统,所述即时通讯系统具有多个接入器,所述接入器用于连接第一用户、第二用户,所述装置包括:
消息接入模块,用于由所述接入器接收第一用户发送的消息;
用户确定模块,用于确定接收所述消息的第二用户;
用户分组模块,用于将所述第二用户划分至一个或多个分组中,同一个所述分组中的第二用户连接同一个接入器;
配置信息生成模块,用于根据所述消息生成适配所述分组的配置信息;
消息发送模块,用于由所述接入器按照所述配置信息、将所述消息发送至所述接入器对应分组中的第二用户。
可选地,所述用户确定模块包括:
群组确定子模块,用于确定所述第一用户发送所述消息时所处的群组;
群组用户确定子模块,用于确定位于所述群组中的用户为接收所述消息的第二用户。
可选地,所述用户分组模块包括:
第一用户标识确定子模块,用于确定所述第二用户对应的用户标识;
接入标识查询子模块,用于查询所述用户标识对应的接入标识,所述接入标识用于表示接入器;
接入标识划分子模块,用于将相同接入标识对应的用户标识划分至同一个分组中。
可选地,所述配置信息生成模块包括:
第一用户标识确定子模块,用于确定所述第二用户对应的用户标识;
用户信息查询子模块,用于查询所述用户标识对应的接入标识、连接标识,所述接入标识用于表示接入器,所述连接标识用于表示连接;
参数写入子模块,用于针对每个分组,确定所述连接器的接入标识,至少将所述消息、所述分组中第二用户对应的连接标识、所述接入标识写入配置信息中;
配置信息发送子模块,用于将所述配置信息发送至所述接入标识对应的接入器。
可选地,所述消息发送模块包括:
参数读取子模块,用于由所述接入器从所述配置信息中读取所述消息、所述分组中的第二用户对应的连接标识;
连接发送子模块,用于由所述接入器使用所述连接标识对应的连接,将所述消息发送至所述第二用户。
可选地,还包括:
合法性校验模块,用于对所述第一用户和/或所述消息进行合法性校验;
消息忽略模块,用于若未通过所述合法性校验,则忽略所述消息。
消息存储模块,用于若通过所述合法性校验,则将所述消息存储至数据库中,以及,调用所述用户确定模块。
第三方面,本发明实施例还提供了一种即时通讯系统,所述即时通讯系统包括接入系统、聊天系统、连接系统,所述接入系统具有多个接入器,所述接入器用于连接第一用户、第二用户;
所述接入器,用于接收第一用户发送的消息,将所述消息发送至所述聊天系统;
所述聊天系统,用于确定接收所述消息的第二用户,将所述消息、所述第二用户发送至所述连接系统;
所述连接系统,用于将所述第二用户划分至一个或多个分组中,同一个所述分组中的第二用户连接同一个接入器;以及,根据所述消息生成适配所述分组的配置信息,将所述配置信息分别发送至所述接入器;
所述接入器,还用于按照所述配置信息、将所述消息发送至所述接入器对应分组中的第二用户。
可选地,所述聊天系统还用于:
确定所述第一用户发送所述消息时所处的群组;
确定位于所述群组中的用户为接收所述消息的第二用户。
可选地,所述连接系统还用于:
确定所述第二用户对应的用户标识;
查询所述用户标识对应的接入标识,所述接入标识用于表示接入器;
将相同接入标识对应的用户标识划分至同一个分组中。
可选地,所述连接系统还用于:
确定所述第二用户对应的用户标识;
查询所述用户标识对应的接入标识、连接标识,所述接入标识用于表示接入器,所述连接标识用于表示连接;
针对每个分组,确定所述连接器的接入标识,至少将所述消息、所述分组中第二用户对应的连接标识、所述接入标识写入配置信息中。
可选地,所述接入器还用于:
从所述配置信息中读取所述消息、所述分组中的第二用户对应的连接标识;
使用所述连接标识对应的连接,将所述消息发送至所述第二用户。
可选地,所述聊天系统还用于:
对所述第一用户和/或所述消息进行合法性校验;
若未通过所述合法性校验,则忽略所述消息;
若通过所述合法性校验,则将所述消息存储至数据库中。
第四方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任一所述的即时通讯方法。
第五方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如第一方面中任一所述的即时通讯方法。
在本实施例中,由接入器接收第一用户发送的消息,确定接收消息的第二用户,将第二用户划分至一个或多个分组中,同一个分组中的第二用户连接同一个接入器,根据消息生成适配分组的配置信息,由接入器按照配置信息,将消息发送至接入器对应分组中的第二用户。由于每条消息在服务器进行处理和推送,无需丢弃消息,可保证消息处理的实时性,与此同时,以全部的第二用户作为整体、使用同一条消息,以接入器进行分组,再按组批量转发消息给相应的接入器,大大减少了消息在即时通讯系统中各个系统之间扩散的数量,从而大大降低了扩散系数,减少了扩散消息给即时通讯系统中各个系统带来的影响,从而降低了后台服务器的压力。
附图说明
图1为本发明实施例一提供的一种即时通讯方法的流程图;
图2是一种即时通讯系统的架构图;
图3是本发明实施例二提供的一种即时通讯装置的结构示意图;
图4为本发明实施例三提供的一种即时通讯系统的结构示意图;
图5为本发明实施例四提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种即时通讯方法的流程图,本实施例可适用于按照接入器对用户进行分组分发消息的情况,该方法可以由即时通讯装置来执行,该即时通讯装置可以由软件和/或硬件实现,可配置在即时通讯系统中,例如,服务器、工作站,等等。
如图2所示,该即时通讯系统具有连接系统211、聊天系统212、数据库213、连接系统214。
其中,连接系统211具有多个接入器2111,每个接入器用于连接一个或多个用户220,为用户220提供接入功能,并保持网络连接,如HTTP(Hyper Text TransportProtocol,超文本传输协议)等长连接,同时与下游的每个聊天系统保持连接。
需要说明的是,用户220是指即时通讯的客户端,如浏览器、独立的即时通讯工具、携带有即时通讯功能的应用(如支付应用、短视频应用、直播应用等)、等等,在客户端中可登录有预先在即时通讯系统注册的用户帐号,用以表示用户,其发送消息、接收消息等操作,均是指客户端执行的操作。
在本实施例中,该用户220包括第一用户、一个或多个第二用户,其中,即第一用户是指发送消息的用户,第二用户是指接收消息的用户。
聊天系统212主要负责群聊业务逻辑的处理,例如,用户身份的合法性校验、消息内容的合法性校验、查询群成员列表、消息存入数据库213等。
连接系统213主要负责管理用户220的连接信息。
如图1所示,该方法具体包括如下步骤:
S101、由所述接入器接收第一用户发送的消息。
在本实施例中,第一用户在不同的会话场景中输入消息,发送至即时通讯系统,由连接该第一用户的接入器接收。
其中,该消息的内容可以是文本信息、图像数据、音频数据、视频数据,等等。
接入系统汇总的接入器接收到消息后,可将该条消息转发给聊天系统。
聊天系统接收到消息后,内部进行业务逻辑处理,对第一用户(身份)和/或消息进行合法性校验,如该第一用户是否属于某个群组、是否被禁言等,该消息是否包含敏感信息(如含有病毒的文件、非法网页的URL(Uniform Resource Locator,统一资源定位符)等)。
若未通过合法性校验,则忽略该消息。
若通过合法性校验,则将消息存储至数据库中,实现持久化,从而进行消息漫游等处理,以及,执行S102。
S102、确定接收所述消息的第二用户。
在本实施例中,聊天系统在在不同的会话场景中查询接收该消息的用户,作为第二用户。
在群聊的会话场景中,该第二用户可以指与第一用户同属于一个群组的其他用户。
其中,群组,包括群、小组,均是指由多个用户组成的一个虚拟组织。
群聊,是指该虚拟组织内的任何成员在该组织里的发言,所有群成员都能接收其他群成员发的聊天消息。
在群聊中,可确定第一用户发送消息时所处的群组,确定位于群组中的用户为接收消息的第二用户。
当然,上述会话场景只是作为示例,在实施本实施例时,可以根据实际情况设置其他会话场景,例如,第一用户批量将消息发送至多个指定的用户,此时,该指定的用户为第二用户,等等,本实施例对此不加以限制。另外,除了上述会话场景外,本领域技术人员还可以根据实际需要采用其它会话场景,本实施例对此也不加以限制。
在确定第二用户之后,聊天系统处理完业务逻辑,把第二用户的用户列表和消息同时转发给连接系统,从而避免扩散系数对聊天系统以及连接系统性能的影响,此时,转发给连接系统的数据结构的关键信息,包括第二用户的用户列表和消息。
以群聊作为示例,该数据结构如下:
{
"content":"大家好",
"groupMemberIdList":[10001,10002,10003,10004,10005,10006],
"senderId":10001,
"groupId":1
}
其中,content为消息,groupMemberIdList表示第二用户的用户列表,senderId表示第一用户的用户标识(如用户ID),groupId表示群组的ID。
以第二用户的用户列表的方式在即时通讯系统中的各个系统之间转发,所以有效减少各个系统之间交互的次数,即一次调用,就可以把整个第二用户的用户列表转发到另一个系统,而不需要按第二用户逐个处理消息时,都发生一次网络交互,使得系统之间的通讯效率更高。
S103、将所述第二用户划分至一个或多个分组中。
在本实施例中,连接系统将第二用户划分至一个或多个分组中,其中,同一个分组中的第二用户连接同一个接入器。
在具体实现中,连接系统确定第二用户对应的用户标识(如用户ID),从缓存中查询出二用户对应的用户标识的连接信息,从而查询用户标识对应的接入标识(如接入器ID),接入标识用于表示接入器。
其中,连接信息的示例如下:
memberId=10001,accessId=1,clientConnection=0x100
memberId=10002,accessId=1,clientConnection=0x101
memberId=10003,accessId=2,clientConnection=0x200
memberId=10004,accessId=2,clientConnection=0x201
memberId=10005,accessId=3,clientConnection=0x300
memberId=10006,accessId=3,clientConnection=0x301
其中,memberId表示第二用户对应的用户标识(如用户ID),accessId表示某台接入器的接入标识,clientConnection表示第二用户(客户端)与接入器之间的连接标识,可以使用十六进制表示。
连接系统按接入标识accessId对第二用户(以用户标识标识)进行分组,将相同接入标识accessId对应的用户标识划分至同一个分组中,再分别把消息转发给相应的接入系统,从而避免扩散系数对连接系统和接入系统性能的影响。
其中,分组的示例如下:
memberId=10001,accessId=1,clientConnection=0x100
memberId=10002,accessId=1,clientConnection=0x101
在本示例中,accessId为1的接入器有两个第二用户与它保持着网络连接,其用户标识分别是memberId=10001和memberId=10002,所以把memberId=10001和memberId=10002划分至同一个分组。
S104、根据所述消息生成适配所述分组的配置信息。
在本实施例中,连接系统确定分组之后,可针对不同的分组,依据消息生成相应的配置信息,该配置信息用于指示接入器针对该分组中的第二用户发送消息。
在具体实现中,可确定第二用户对应的用户标识,查询用户标识对应的接入标识、连接标识,其中,接入标识用于表示接入器,连接标识用于表示连接;
针对每个分组,确定连接器的接入标识,至少将消息、分组中第二用户对应的连接标识、接入标识写入配置信息中,并将配置信息发送至接入标识对应的接入器。
连接系统把同一分组中第二用户的用户信息(连接标识、接入标识)与消息一起发送给相应的接入器,同样达到了减少网络交互次数的效果,提高连接系统与接入系统之间的通讯效率。
在一个示例中,假设memberId=10001和memberId=10002的第二用户划分至同一个分组,即把分组列表[10001,10002]以及消息作为配置信息一起转发给accessId为1的接入器,数据结构示例如下:
S105、由所述接入器按照所述配置信息,将所述消息发送至所述接入器对应分组中的第二用户。
在本实施例中,接入系统中的接入器接收到配置信息后,可按照配置信息中将消息发送至该接入器对应分组中的第二用户。
在具体实现中,由接入器从配置信息中读取消息、分组中的第二用户对应的连接标识(即clientConnection)。
由接入器使用所述连接标识(即clientConnection)对应的连接,将消息发送至第二用户。
在本实施例中,由接入器接收第一用户发送的消息,确定接收消息的第二用户,将第二用户划分至一个或多个分组中,同一个分组中的第二用户连接同一个接入器,根据消息生成适配分组的配置信息,由接入器按照配置信息、将消息发送至接入器对应分组中的第二用户。由于每条消息在服务器进行处理和推送,无需丢弃消息,可保证消息处理的实时性,与此同时,以全部的第二用户作为整体、使用同一条消息,以接入器进行分组,再按组批量转发消息给相应的接入器,大大减少了消息在即时通讯系统中各个系统之间扩散的数量,从而大大降低了扩散系数,减少了扩散消息给即时通讯系统中各个系统带来的影响,从而降低了后台服务器的压力。
实施例二
图3为本发明实施例二提供的一种即时通讯装置的结构示意图,应用于即时通讯系统,所述即时通讯系统具有多个接入器,所述接入器用于连接第一用户、第二用户,该装置具体可以包括如下模块:
消息接入模块301,用于由所述接入器接收第一用户发送的消息;
用户确定模块302,用于确定接收所述消息的第二用户;
用户分组模块303,用于将所述第二用户划分至一个或多个分组中,同一个所述分组中的第二用户连接同一个接入器;
配置信息生成模块304,用于根据所述消息生成适配所述分组的配置信息;
消息发送模块305,用于由所述接入器按照所述配置信息、将所述消息发送至所述接入器对应分组中的第二用户。
在本发明的一个实施例中,所述用户确定模块302包括:
群组确定子模块,用于确定所述第一用户发送所述消息时所处的群组;
群组用户确定子模块,用于确定位于所述群组中的用户为接收所述消息的第二用户。
在本发明的一个实施例中,所述用户分组模块303包括:
第一用户标识确定子模块,用于确定所述第二用户对应的用户标识;
接入标识查询子模块,用于查询所述用户标识对应的接入标识,所述接入标识用于表示接入器;
接入标识划分子模块,用于将相同接入标识对应的用户标识划分至同一个分组中。
在本发明的一个实施例中,所述配置信息生成模块304包括:
第一用户标识确定子模块,用于确定所述第二用户对应的用户标识;
用户信息查询子模块,用于查询所述用户标识对应的接入标识、连接标识,所述接入标识用于表示接入器,所述连接标识用于表示连接;
参数写入子模块,用于针对每个分组,确定所述连接器的接入标识,至少将所述消息、所述分组中第二用户对应的连接标识、所述接入标识写入配置信息中;
配置信息发送子模块,用于将所述配置信息发送至所述接入标识对应的接入器。
在本发明的一个实施例中,所述消息发送模块305包括:
参数读取子模块,用于由所述接入器从所述配置信息中读取所述消息、所述分组中的第二用户对应的连接标识;
连接发送子模块,用于由所述接入器使用所述连接标识对应的连接,将所述消息发送至所述第二用户。
在本发明的一个实施例中,还包括:
合法性校验模块,用于对所述第一用户和/或所述消息进行合法性校验;
消息忽略模块,用于若未通过所述合法性校验,则忽略所述消息。
消息存储模块,用于若通过所述合法性校验,则将所述消息存储至数据库中,以及,调用所述用户确定模块302。
本发明实施例所提供的即时通讯装置可执行本发明任意实施例所提供的即时通讯方法,具备执行方法相应的功能模块和有益效果。
在本实施例中,由接入器接收第一用户发送的消息,确定接收消息的第二用户,将第二用户划分至一个或多个分组中,同一个分组中的第二用户连接同一个接入器,根据消息生成适配分组的配置信息,由接入器按照配置信息、将消息发送至接入器对应分组中的第二用户。由于每条消息在服务器进行处理和推送,无需丢弃消息,可保证消息处理的实时性,与此同时,以全部的第二用户作为整体、使用同一条消息,以接入器进行分组,再按组批量转发消息给相应的接入器,大大减少了消息在即时通讯系统中各个系统之间扩散的数量,从而大大降低了扩散系数,减少了扩散消息给即时通讯系统中各个系统带来的影响,从而降低了后台服务器的压力。
实施例三
图4为本发明实施例三提供的一种即时通讯系统的结构示意图,所述即时通讯系统包括接入系统401、聊天系统402、连接系统403,所述接入系统401具有多个接入器4011,所述接入器用于连接第一用户、第二用户;
所述接入器4011,用于接收第一用户发送的消息,将所述消息发送至所述聊天系统402;
所述聊天系统402,用于确定接收所述消息的第二用户,将所述消息、所述第二用户发送至所述连接系统403;
所述连接系统403,用于将所述第二用户划分至一个或多个分组中,同一个所述分组中的第二用户连接同一个接入器4011;以及,根据所述消息生成适配所述分组的配置信息,将所述配置信息分别发送至所述接入器4011;
所述接入器4011,还用于按照所述配置信息、将所述消息发送至所述接入器对应分组中的第二用户。
在本发明的一个实施例中,所述聊天系统402还用于:
确定所述第一用户发送所述消息时所处的群组;
确定位于所述群组中的用户为接收所述消息的第二用户。
在本发明的一个实施例中,所述连接系统403还用于:
确定所述第二用户对应的用户标识;
查询所述用户标识对应的接入标识,所述接入标识用于表示接入器;
将相同接入标识对应的用户标识划分至同一个分组中。
在本发明的一个实施例中,所述连接系统403还用于:
确定所述第二用户对应的用户标识;
查询所述用户标识对应的接入标识、连接标识,所述接入标识用于表示接入器,所述连接标识用于表示连接;
针对每个分组,确定所述连接器的接入标识,至少将所述消息、所述分组中第二用户对应的连接标识、所述接入标识写入配置信息中。
在本发明的一个实施例中,所述接入器4011还用于:
从所述配置信息中读取所述消息、所述分组中的第二用户对应的连接标识;
使用所述连接标识对应的连接,将所述消息发送至所述第二用户。
在本发明的一个实施例中,所述聊天系统402还用于:
对所述第一用户和/或所述消息进行合法性校验;
若未通过所述合法性校验,则忽略所述消息;
若通过所述合法性校验,则将所述消息存储至数据库中。
本发明实施例所提供的即时通讯系统可执行本发明任意实施例所提供的即时通讯方法,具备执行方法相应的功能模块和有益效果。
在本实施例中,由接入器接收第一用户发送的消息,确定接收消息的第二用户,将第二用户划分至一个或多个分组中,同一个分组中的第二用户连接同一个接入器,根据消息生成适配分组的配置信息,由接入器按照配置信息、将消息发送至接入器对应分组中的第二用户。由于每条消息在服务器进行处理和推送,无需丢弃消息,可保证消息处理的实时性,与此同时,以全部的第二用户作为整体、使用同一条消息,以接入器进行分组,再按组批量转发消息给相应的接入器,大大减少了消息在即时通讯系统中各个系统之间扩散的数量,从而大大降低了扩散系数,减少了扩散消息给即时通讯系统中各个系统带来的影响,从而降低了后台服务器的压力。
实施例四
图5为本发明实施例四提供的一种计算机设备的结构示意图。如图5所示,该计算机设备包括处理器500、存储器501、通信模块502、输入装置503和输出装置504;计算机设备中处理器500的数量可以是一个或多个,图5中以一个处理器500为例;计算机设备中的处理器500、存储器501、通信模块502、输入装置503和输出装置504可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器501作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本实施例中的即时通讯方法对应的模块(例如,如图3所示的即时通讯装置中的消息接入模块301、用户确定模块302、用户分组模块303、配置信息生成模块304和消息发送模块305;或者,如图4所示的即时通讯系统中的接入系统401(包括接入器4011)、聊天系统402和连接系统403)。处理器500通过运行存储在存储器501中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的即时通讯方法。
存储器501可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器501可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器501可进一步包括相对于处理器500远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信模块502,用于与显示屏建立连接,并实现与显示屏的数据交互。输入装置503可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。
本实施例提供的计算机设备,可执行本发明任一实施例提供的即时通讯方法,具体相应的功能和有益效果。
实施例五
本发明实施例五还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种即时通讯方法,应用于即时通讯系统,所述即时通讯系统具有多个接入器,所述接入器用于连接第一用户、第二用户,所述方法包括:
由所述接入器接收第一用户发送的消息;
确定接收所述消息的第二用户;
将所述第二用户划分至一个或多个分组中,同一个所述分组中的第二用户连接同一个接入器;
根据所述消息生成适配所述分组的配置信息;
由所述接入器按照所述配置信息,将所述消息发送至所述接入器对应分组中的第二用户。
当然,本发明实施例所提供的计算机可读存储介质,其计算机程序不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的即时通讯方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述即时通讯装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种即时通讯方法,其特征在于,应用于即时通讯系统,所述即时通讯系统具有多个接入器,所述接入器用于连接第一用户、第二用户,所述方法包括:
由所述接入器接收第一用户发送的消息;
确定接收所述消息的第二用户;
将所述第二用户划分至一个或多个分组中,同一个所述分组中的第二用户连接同一个接入器;
根据所述消息生成适配所述分组的配置信息;
由所述接入器按照所述配置信息,将所述消息发送至所述接入器对应分组中的第二用户。
2.根据权利要求1所述的方法,其特征在于,所述确定接收所述消息的第二用户,包括:
确定所述第一用户发送所述消息时所处的群组;
确定位于所述群组中的用户为接收所述消息的第二用户。
3.根据权利要求1所述的方法,其特征在于,所述将所述第二用户划分至一个或多个分组中,包括:
确定所述第二用户对应的用户标识;
查询所述用户标识对应的接入标识,所述接入标识用于表示接入器;
将相同接入标识对应的用户标识划分至同一个分组中。
4.根据权利要求1所述的方法,其特征在于,所述根据所述消息生成适配所述分组的配置信息,包括:
确定所述第二用户对应的用户标识;
查询所述用户标识对应的接入标识、连接标识,所述接入标识用于表示接入器,所述连接标识用于表示连接;
针对每个分组,确定所述连接器的接入标识,至少将所述消息、所述分组中第二用户对应的连接标识、所述接入标识写入配置信息中;
将所述配置信息发送至所述接入标识对应的接入器。
5.根据权利要求1所述的方法,其特征在于,所述由所述接入器按照所述配置信息,将所述消息发送至所述接入器对应分组中的第二用户,包括:
由所述接入器从所述配置信息中读取所述消息、所述分组中的第二用户对应的连接标识;
由所述接入器使用所述连接标识对应的连接,将所述消息发送至所述第二用户。
6.根据权利要求1-5任一所述的方法,其特征在于,在所述通过某个所述接入器接收第一用户发送的消息之后,还包括:
对所述第一用户和/或所述消息进行合法性校验;
若未通过所述合法性校验,则忽略所述消息;
若通过所述合法性校验,则将所述消息存储至数据库中,以及,执行所述确定接收所述消息的第二用户。
7.一种即时通讯装置,其特征在于,应用于即时通讯系统,所述即时通讯系统具有多个接入器,所述接入器用于连接第一用户、第二用户,所述装置包括:
消息接入模块,用于由所述接入器接收第一用户发送的消息;
用户确定模块,用于确定接收所述消息的第二用户;
用户分组模块,用于将所述第二用户划分至一个或多个分组中,同一个所述分组中的第二用户连接同一个接入器;
配置信息生成模块,用于根据所述消息生成适配所述分组的配置信息;
消息发送模块,用于由所述接入器按照所述配置信息,将所述消息发送至所述接入器对应分组中的第二用户。
8.一种即时通讯系统,其特征在于,所述即时通讯系统包括接入系统、聊天系统、连接系统,所述接入系统具有多个接入器,所述接入器用于连接第一用户、第二用户;
所述接入器,用于接收第一用户发送的消息,将所述消息发送至所述聊天系统;
所述聊天系统,用于确定接收所述消息的第二用户,将所述消息、所述第二用户发送至所述连接系统;
所述连接系统,用于将所述第二用户划分至一个或多个分组中,同一个所述分组中的第二用户连接同一个接入器;以及,根据所述消息生成适配所述分组的配置信息,将所述配置信息分别发送至所述接入器;
所述接入器,还用于按照所述配置信息、将所述消息发送至所述接入器对应分组中的第二用户。
9.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的即时通讯方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-6中任一所述的即时通讯方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910953109.XA CN110545237A (zh) | 2019-10-08 | 2019-10-08 | 一种即时通讯方法、装置、系统、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910953109.XA CN110545237A (zh) | 2019-10-08 | 2019-10-08 | 一种即时通讯方法、装置、系统、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110545237A true CN110545237A (zh) | 2019-12-06 |
Family
ID=68715382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910953109.XA Pending CN110545237A (zh) | 2019-10-08 | 2019-10-08 | 一种即时通讯方法、装置、系统、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110545237A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727507A (zh) * | 2019-10-21 | 2020-01-24 | 广州欢聊网络科技有限公司 | 一种消息的处理方法、装置、计算机设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488928A (zh) * | 2009-01-06 | 2009-07-22 | 腾讯科技(深圳)有限公司 | 一种互联企业群通信设备及互联企业群通信方法 |
CN101631140A (zh) * | 2009-08-03 | 2010-01-20 | 中兴通讯股份有限公司 | 即时通信系统的集群服务器和集群间通信的方法 |
CN105743772A (zh) * | 2016-01-26 | 2016-07-06 | 深圳宸睿科技有限公司 | 一种消息处理的方法及系统 |
CN106250249A (zh) * | 2016-08-09 | 2016-12-21 | 广州唯品会信息科技有限公司 | 消息队列的控制方法及装置 |
CN106953842A (zh) * | 2017-02-13 | 2017-07-14 | 北京奇虎科技有限公司 | 一种直播平台的消息处理方法和装置 |
CN108400924A (zh) * | 2017-02-06 | 2018-08-14 | 阿里巴巴集团控股有限公司 | 群组消息的阅读状态展示方法、即时通讯客户端及服务端 |
CN108933755A (zh) * | 2017-05-19 | 2018-12-04 | 腾讯科技(深圳)有限公司 | 应用服务器消息发送、接收、交互方法及装置 |
-
2019
- 2019-10-08 CN CN201910953109.XA patent/CN110545237A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488928A (zh) * | 2009-01-06 | 2009-07-22 | 腾讯科技(深圳)有限公司 | 一种互联企业群通信设备及互联企业群通信方法 |
CN101631140A (zh) * | 2009-08-03 | 2010-01-20 | 中兴通讯股份有限公司 | 即时通信系统的集群服务器和集群间通信的方法 |
CN105743772A (zh) * | 2016-01-26 | 2016-07-06 | 深圳宸睿科技有限公司 | 一种消息处理的方法及系统 |
CN106250249A (zh) * | 2016-08-09 | 2016-12-21 | 广州唯品会信息科技有限公司 | 消息队列的控制方法及装置 |
CN108400924A (zh) * | 2017-02-06 | 2018-08-14 | 阿里巴巴集团控股有限公司 | 群组消息的阅读状态展示方法、即时通讯客户端及服务端 |
CN106953842A (zh) * | 2017-02-13 | 2017-07-14 | 北京奇虎科技有限公司 | 一种直播平台的消息处理方法和装置 |
CN108933755A (zh) * | 2017-05-19 | 2018-12-04 | 腾讯科技(深圳)有限公司 | 应用服务器消息发送、接收、交互方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727507A (zh) * | 2019-10-21 | 2020-01-24 | 广州欢聊网络科技有限公司 | 一种消息的处理方法、装置、计算机设备和存储介质 |
CN110727507B (zh) * | 2019-10-21 | 2022-09-09 | 广州欢聊网络科技有限公司 | 一种消息的处理方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8769025B2 (en) | Cluster server of an instant messaging system and messaging method between clusters | |
US9110884B2 (en) | Message publishing and subscribing method and apparatus | |
US7949704B2 (en) | Administration of a broker-based publish/subscribe messaging system | |
CN110647698B (zh) | 页面加载方法、装置、电子设备及可读存储介质 | |
US20100115041A1 (en) | Creating a message readable by a plurality of heterogeneous recipients | |
CN109995741B (zh) | 一种网络直播中连麦实现方法及系统 | |
CN103535004B (zh) | 用于促进匿名音频和视频通信的方法和基于web的系统 | |
JP2019530033A5 (zh) | ||
WO2019205555A1 (zh) | 消息推送方法及装置 | |
CN110727507B (zh) | 一种消息的处理方法、装置、计算机设备和存储介质 | |
EP3767895A1 (en) | Method and system for audio and video interaction between plurality of groups | |
CN109587082A (zh) | 一种基于Linux操作系统的报文异步转发系统及方法 | |
CN105208004A (zh) | 一种基于obd设备的数据入库方法 | |
CN111431966A (zh) | 一种业务请求处理方法、装置、电子设备及存储介质 | |
CN110545237A (zh) | 一种即时通讯方法、装置、系统、计算机设备和存储介质 | |
US10268532B2 (en) | Application message processing system, method, and application device | |
CN113472687A (zh) | 一种数据处理方法和装置 | |
CN113315689B (zh) | 信息处理方法、系统、电子设备和可读存储介质 | |
CN112929257A (zh) | 多场景消息发送方法、装置、服务器以及存储介质 | |
US11870746B2 (en) | Method for chatting messages by topic based on subscription channel reference in server and user device | |
CN116800787A (zh) | 一种基于以太网通讯协议的车载通信方法及系统 | |
CN112202914A (zh) | 一种消息推送方法及装置 | |
CN100450136C (zh) | 一种即时通讯用户的即时通话的方法和系统 | |
CN110557453A (zh) | 一种数据分发方法、装置、设备和存储介质 | |
KR102643263B1 (ko) | 대용량 실시간 다중 클라이언트 양방향 비동기 메시지 송수신 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191206 |