CN111431790B - 一种即时通讯方法、装置、***及存储介质 - Google Patents
一种即时通讯方法、装置、***及存储介质 Download PDFInfo
- Publication number
- CN111431790B CN111431790B CN201910020631.2A CN201910020631A CN111431790B CN 111431790 B CN111431790 B CN 111431790B CN 201910020631 A CN201910020631 A CN 201910020631A CN 111431790 B CN111431790 B CN 111431790B
- Authority
- CN
- China
- Prior art keywords
- message
- intercommunication
- server
- instant messaging
- group
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及计算机应用技术领域,公开了一种即时通讯方法、装置、***及存储介质,用于实现各种类型的即时通讯应用之间的消息交互的可靠性,进而提升用户体验。所述***包括:包括至少两个即时通讯子***,以及互通消息服务器,每个即时通讯子***将其用户发给其他即时通讯子***用户的互通类消息,发送到互通消息服务器,并互通消息服务器拉取其他即时通讯子***用户发送给其用户的互通类消息并转发给其用户;互通消息服务器接收并存储各个即时通讯子***发送的互通类消息,并在各个即时通讯子***拉取消息时,根据互通类消息的接收顺序,以先入先出的原则将存储的互通类消息发送给接收互通类消息的用户所在的即时通讯子***。
Description
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种即时通讯方法、装置、***及存储介质。
背景技术
随着计算机技术的发展,即时通讯应用作为计算机技术应用的产物之一,在人们的日常生活的中得到了广泛的普及。即时通讯应用是一种基于互联网的即时交流信息的应用,不同类型的即时通讯的客户端用户之间可以互为好友,进而可以进行消息的交互,例如第一即时通讯应用的用户与第二即时通讯应用的用户可以互相加为好友,进而第一即时通讯应用的用户可以基于第一即时通讯应用平台向第二即时通讯应用的用户发送消息,第二即时通讯应用的用户也可以基于第二即时通讯应用平台向第一即时通讯应用的用户发送消息,然而,如何进行各个即时通讯应用之间的消息互通,以提各即时通讯应用中消息交互的可靠性,进而提升用户体验,也是一个需要解决的技术问题。
发明内容
本发明实施例提供一种即时通讯方法、装置、***及存储介质,用于实现各种类型的即时通讯应用之间的消息交互的可靠性,进而提升用户体验。
一方面,本发明实施例提供了一种即时通讯***,包括至少两个即时通讯子***,以及分别通信连接所述每个即时通讯子***的互通消息服务器,其中:
每个即时通讯子***,将本即时通讯子***发给其他即时通讯子***的互通类消息,发送到所述互通消息服务器,以及从所述互通消息服务器获取其他即时通讯子***发送给本即时通讯子***的互通类消息;
所述互通消息服务器接收各个即时通讯子***发送的互通类消息,并分别针对各个即时通讯子***,按照接收顺序存储发送给即时通讯子***的互通类消息,以及在每个即时通讯子***获取消息时,根据互通类消息的接收顺序,以先入先出的原则将存储的互通类消息发送给即时通讯子***。
另一方面,本发明实施例提供了一种即时通讯方法,包括:
第一即时通讯应用服务器向互通消息服务器发送互通类消息,所述互通类消息为第一即时通讯应用的用户发给其他即时通讯应用的用户的即时消息;以及
第一即时通讯应用服务器从所述互通消息服务器获取其他即时通讯应用的用户发送给其用户的互通类消息并转发给其用户;
其中,所述第一即时通讯应用服务器从所述互通消息服务器获取的互通类消息是,所述互通消息服务器根据互通类消息的接收顺序,以先入先出的原则从与所述第一即时通讯应用服务器对应的各存储节点中确定出的。
另一方面,本发明实施例提供了一种即时通讯方法,包括:
互通消息服务器接收各个即时通讯应用服务器发送的互通类消息;
所述互通消息服务器分别针对每一个互通类消息,按照其接收顺序以先入先出的原则设定消息获取的序号后,分别存储在所述互通消息服务器中与接收该互通类消息的即时通讯应用服务器对应的多个存储节点中。
另一方面,本发明实施例提供一种计算装置,包括至少一个处理器、以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行本发明实施例中提供的即时通讯所述方法的步骤。
另一方面,本发明实施例提供了一种存储介质,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行本发明实施例中提供的即时通讯所述方法的步骤。
本发明实施例提供了一种即时通讯***,该***包括至少两个即时通讯子***,以及分别通讯连接所述每个即时通讯子***的互通消息服务器,各个即时通讯子***均通过互通消息服务器进行消息的相互交互,各即时通讯应用在收发其他类型即时通讯的消息时,只需要与互通消息服务器进行交互,降低了各类型的即时通讯应用的消息处理的复杂度与难度,实现各种类型的即时通讯应用之间的消息交互的可靠性,进而提升了用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1为本发明实施例提供的一种应用场景示意图;
图2A为本发明实施例提供的一种即时通讯***示意图;
图2B为本发明实施例提供的一种企业即时通讯子***示意图;
图3为本发明实施例提供的第一即时通讯应用客户端发送群聊消息时的消息传递流程图;
图4为本发明实施例提供的一种互通消息服务器读写操作示意图;
图5为本发明实施例提供的第一即时通讯应用客户端接收第二即时通讯应用客户端发送的群聊消息时的消息传递流程图;
图6A为本发明实施例提供的另一种互通消息服务器读写操作示意图;
图6B为本发明实施例提供的从互通消息服务器拉取消息示意图;
图7为本发明实施例提供的第一即时通讯应用客户端向第二即时通讯应用客户端发送单聊消息时的消息传递流程图;
图8为本发明实施例提供的第一即时通讯应用客户端接收第二即时通讯应用客户端发送的单聊消息时的消息传递流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明技术方案保护的范围。
下面对本发明实施例中涉及的部分概念进行介绍。
即时通讯应用:是一种基于互联网的及时交流信息的应用,即时通讯应用允许两个人或多人使用互联网即时地进行文字信息、图片、音视频等交流,这样的即时通讯应用,如企业微信,微信等等。
终端设备:为任何能够按照程序运行,自动、高速处理大量数据的智能电子设备,这样的终端设备如电脑,ipad,手机等。
在具体实践过程中,考虑到不同类型的即时通讯应用的客户端用户之间可以互为好友,进而可以进行消息的交互,当一种类型的即时通讯应用的客户端用户添加了多个不同类型的即时通讯应用客户端用户为其好友或组成群组时,就会存在一种类型的即时通讯应用需要与多个不同类型即时通讯应用进行消息的交互的情况,甚至出现在同一时刻该种类型的即时通讯应用需要与多个不同类型即时通讯应用同时进行消息的交互,极大的增加了该种类型的即时通讯应用的消息处理的复杂度与难度,若该种类型的即时通讯应用后台的配置不能满足同一时刻与多个不同类型即时通讯应用之间的消息交互,还会存在消息处理延迟,甚至是消息出错、丢失等情况,导致客户端接收消息延迟、甚至是无法接收到消息或接收到错误消息,从而影响了消息交互的可靠性,降低了用户体验。
基于此,本发明实施例提供了一种即时通讯***,该***包括至少两个即时通讯子***,以及分别通讯连接所述每个即时通讯子***的互通消息服务器,其中:每个即时通讯子***,将本即时通讯子***发给其他即时通讯子***的互通类消息,发送到互通消息服务器,以及从互通消息服务器获取其他即时通讯子***发送给本即时通讯子***的互通类消息,进一步的互通消息服务器接收各个即时通讯子***发送的互通类消息,并分别针对各个即时通讯子***,按照接收顺序存储发送给即时通讯子***的互通类消息,以及在每个即时通讯子***获取消息时,根据互通类消息的接收顺序以先入先出的原则将存储的互通类消息发送给即时通讯子***,即本发明实施例提供的即时通讯***中,各个即时通讯子***均通过互通消息服务器进行消息的相互交互,各即时通讯应用在收发其他类型即时通讯的消息时,只需要与互通消息服务器进行交互,避免了在同一时刻各种类型的即时通讯应用需要与多个不同类型即时通讯应用同时进行消息的交互的情况,从而降低了各类型的即时通讯应用的消息处理的复杂度与难度,实现各种类型的即时通讯应用之间的消息交互的可靠性,进而提升了用户体验。
本发明实施例中的即时通讯方案可以应用于如图1所示的应用场景,该应用场景中包括第一终端设备10、第二终端设备11、支持第一即时通讯应用的第一服务器12、支持第二即时通讯应用的第二服务器13、以及作为消息互通中心的互通消息服务器14,其中,第一即时通讯应用的类型与第二即时通讯应用的类型不同,第一终端设备10中安装第一即时通讯应用客户端,第二终端设备11中安装有第二即时通讯应用客户端,第一终端设备10与第一服务器12通过网络连接,第二终端设备11与第二服务器13通过网络连接,当然,第一终端设备10与第一终端设备11也可网络连接(图中未画出),第一服务器12、第二服务器13分别与互通消息服务器14网络连接,网络可以为局域网、广域网或移动互联网等通信网络中的任意一种。
第一服务器12、第二服务器13、互通消息服务器14可以分别为一台服务器,若干台服务器组成的服务器集群或云计算中心,在图1所示的应用场景中,第一服务器12由多台服务器组成的服务器集群,第二服务器12由多台服务器组成的服务器集群,互通消息服务器14也由多台服务器组成的服务器集群。
在该应用场景中,第一终端设备10中的第一即时通讯应用客户端的用户向第二终端设备11的第二即时通讯应用客户端用户发送消息时,该消息现由第一终端设备10发送到第一服务器12中,然后由第一服务器12将该消息投递到互通消息服务器14中,互通消息服务器14将该消息转发给第二服务器13,再由第二服务器13将该消息发送给第二终端设备11中的第而即时通讯应用客户端;同样的,第一终端设备10中第一即时通讯应用客户端的用户获取第二终端设备11的第二即时通讯应用客户端用户发送消息时,先由第一服务器12从互通消息服务器14中拉取第二服务器13发送的消息,然后将该消息转发给第一终端设备10,下文将对上述过程进行详细叙述。
在另一种可能的应用场景中,还包括支持第三即时通讯应用的第三服务器、支持第四即时应用的第四服务器,即另一种可能的应用场景中可以涉及多个不同的即时通讯应用,各即时通讯应用对应支持其运行的服务器均可通过互通消息服务器实现消息的交互。
需要注意的是,上文提及的应用场景仅是为了便于理解本发明的精神和原理而示出,本发明实施例在此方面不受任何限制。相反,本发明实施例可以应用于适用的任何场景。
需要说明的是,本发明实施例应用中,最可能的一种应用场景为,在图1所示的应用场景中第一即时通讯应用为企业即时通讯应用,第一服务器为企业即时通讯后台服务器;第二即时通讯应用为与企业即时通讯应用不同的其他类型即时通讯应用,第二服务器为对应的其他类型即时通讯应用后台服务器。
下面结合上文的应用场景,对本发明实施例提供的即时通讯方案进行说明。
如图2A所示,为本发明实施例提供的一种即时通讯***,在该***中包括企业即时通讯子***、企业即时通讯客户端、其他即时通讯子***、其他即时通讯客户端、以及互通消息服务器,其中,企业即时通讯子***用于为其他即时通讯子***对应的其他即时通讯客户端用户提供企业服务,其他即时通讯子***可以是与图2A中企业即时通讯子***不同类型的即时通讯子***,其他即时通讯子***的数量可以为一个或多个,互通消息服务器包括多个存储节点,用于存储企业即时通讯子***与其他即时通讯子***之间的互通消息。
在图2A中,企业即时通讯子***的功能可由图1所示应用场景中的第一服务器实现,企业即时通讯子***的用户是指来自企业即时通讯客户端的用户,企业即时通讯客户端可视为图1所示应用场景中第一终端设备中安装的第一即时通讯应用客户端,企业即时通讯客户端的用户可视为第一终端设备的用户。
其他即时通讯子***的功能可由图1所示应用场景中的第二服务器实现,其他即时通讯子***的用户是指来其他即时通讯客户端的用户,其他即时通讯客户端可视为图1所示应用场景中第二终端设备中安装的第二即时通讯客户端,第二即时通讯客户端的用户可视为第二终端设备的用户。
在本发明实施例中,如图2B所示,企业即时通讯子***可以进一步包括互通发消息服务器、互通收消息服务器,以及消息处理服务器,其中,互通发消息服务器、互通收消息服务器,以及消息处理服务器在物理上可以是各自独立的,也可是集成在一起的。
在本发明实施例中,如图2B所示,企业即时通讯客户端用户向企业即时通讯子***发送互通类消息时,企业即时通讯子***中消息处理服务器负责接收该互通类消息,然后将该互通类消息投递到互通发消息服务器,互通发消息服务器将该互通消息投递到互通消息服务器,进而由互通消息服务器将该互通消息转发给接收互通类消息的用户所在的其他即时通讯子***,进而由其他即时通讯子***转发给其他即时通讯客户端用户,即接收互通类消息的用户。
下面将结合上文叙述的即时通讯***,对各个即时通讯子***之间互通类消息的传递过程进行详细叙述。
为叙述方便,将企业即时通讯子***称为第一即时通讯后台,其他即时通讯子***称为第二即时通讯后台,对应的,第一即时通讯后台包括第一互通发消息服务器、第一互通收消息服务器,以及第一消息处理服务器,第二即时通讯后台包括第二消息服务器。
在本发明实施例中,第一即时通讯后台与第二即时通讯后台之间的互通类消息又可分为互通的单聊消息,以及互通的群聊消息,其中,互通的单聊消息是指,第一即时通讯后台支持的第一即时通讯应用中单个好友与第二即时通讯后台支持的第二即时通讯应用中的单个好友之间交互的消息,互通的群聊消息是指,第一即时通讯应用的用户与第二即时通讯应用的用户进行群聊时各群成员之间交互的消息,下面针对群聊和单聊,分别进行叙述。
如图3所示,为在本发明实施例中,第一即时通讯应用的用户向第二即时通讯应用的用户发送群聊消息时的消息传递流程,包括:
步骤S1:第一即时通讯应用客户端向第一消息处理服务器发送群聊消息。
在本发明实施例中,第一即时通讯应用客户端的用户可在第一即时通讯应用客户端中建立群组,群组中包括与该用户具有好友关系的群成员,群成员中包括来自第二即时通讯应用客户端的至少一个用户,群成员中也可包括来第一即时通讯应用客户端的其他用户,当群组中属于第一即时通讯应用客户端的用户在该群组中发布群聊消息时,该群聊消息会从发送群聊消息的用户所在的第一即时通讯应用客户端发送到第一消息处理服务器。
在图3所示的流程图中,假设发送群聊消息的用户所在的第一即时通讯应用客户端为第一即时通讯应用客户端1,那么就由第一即时通讯应用客户端1将该用户在群组中发布的群聊消息发送到第一消息处理服务器。
步骤S2:第一消息处理服务器确定接收的消息为互通类的群聊消息后,将该群聊消息投递到第一互通发消息服务器。
在本发明实施例中,第一消息处理服务器可以对其接收到的消息进行确认,以确认其是否为互通类的消息,第一消息处理服务器确认第一即时通讯应用客户端1发送的群聊消息为互通类的群聊消息时,将该群聊消息投递到第一互通发消息服务器。
需要注意的是,在实际应用中,也可能存在第一消息处理服务器接收到的群聊消息不是互通类的群聊消息的情况,例如群组的群成员均为第一即时通讯应用客户端的用户,此时,第一消息处理服务器在确定其不是互通类的群聊消息时,可直接由第一消息处理服务器将该群聊消息发送给各群成员所在的第一即时通讯应用客户端,而不需要再投递到第一互通发消息服务器中。
步骤S3:第一互通发消息服务器对群聊消息进行特定格式转换。
在本发明实施例中,第一互通发消息服务器接收到第一消息处理服务器发送的群聊消息之后,还可以向第一消息处理服务器反馈确认收到群聊消息的确认消息,第一消息处理服务器也可向给第一即时通讯应用客户端反馈确认收到群聊消息的确认消息。第一互通发消息服务器需要对群聊消息进行特定格式的转换,转换为其群成员所在第二即时通讯应用客户端对应的特定格式。
步骤S4:第一互通发消息服务器将格式转换后的群聊消息以及本地存储的对应的群版本信息投递到互通消息服务器。
在本发明实施例中,第一互通发消息服务器中存储有第一即时通讯应用客户端中各群组的群版本信息,群版本信息是指对群组中包括的各群成员的描述的信息。第一互通发消息服务器会从本地存储中确定与当前待投递的群聊消息对应的群版本信息之后,将格式转换后的待投递的群聊消息以及其群版本信息投递到互通消息服务器。其中,第一互通发消息服务器可将群版本信息携带在待投递的群聊消息中。
步骤S5:互通消息服务器向第一互通发消息服务器发送群聊消息对应的最新群版本信息。
在本发明实施例中,互通消息服务器中保存有各互通群的最新群版本信息,因此,互通消息服务器接收到第一互通发消息服务器发送的群聊消息之后,可向第一互通发消息服务器反馈该群聊消息对应的最新群版本信息,也可以在确定第一互通发消息服务器发送的群版本信息与互通消息服务器中的最新群版本信息不一致时,向第一互通发消息服务器反馈该群聊消息对应的最新群版本信息。
步骤S6:第一互通发消息服务器确定本地存储的群版本信息与最新群版本信息是否一致,若不一致,执行步骤S7。
步骤S7:向互通消息服务器发送的最新群成员信息获取请求。
在本发明实施例中,第一互通发消息服务器通过确定本地存储的群版本信息与最新群版本信息是否一致,来确定群聊消息的群组中群成员是否发生变化,若版本信息不一致,则表征群聊消息的群组中群成员发生变化,此时,第一互通发消息服务器向互通消息服务器发送群聊消息对应的最新群成员信息获取请求。
步骤S8:互通消息服务器向第一互通发消息服务器发送最新群成员信息。
在本发明实施例中,互通消息服务器接收到第一互通发消息服务器发送的群聊消息对应的最新群成员信息获取请求之后,可向第一互通发消息服务器反馈最新群成员信息,该最新群成员信息中包括群聊消息的群组中最新群成员的信息。
步骤S9:第一互通发消息服务器将最新群成员信息以及群聊消息转发给第一消息处理服务器。
在本发明实施例中,在群聊消息对应群组中的群成员除了包括第二即时通讯应用客户端用户之外,若还包括第一即时通讯应用客户端的其他用户(这里的其他用户是指与发布群聊消息的第一即时通讯应用客户端用户不同的用户),第一互通发消息服务器还可以将最新群成员信息以及群聊消息转发给第一消息处理服务器,若第一消息处理服务器中存储有该群聊消息,第一互通发消息服务器也可仅将最新群成员信息转发给第一消息处理服务器。
步骤S10:第一消息处理服务器根据最新群成员信息,将群聊消息发送给接收者包括最新群成员中属于第一即时通讯应用客户端的用户。
在本发明实施例中,第一消息处理服务器负责与第一即时通讯应用客户端之间的消息交互,因此,第一消息处理服务器在接收到第一互通发消息服务器发送的最新群成员信息以及群聊消息之后,可将群聊消息发送给接收者包括最新群成员中属于第一即时通讯应用客户端的用户,在图3所示的流程中,第一即时通讯应用客户端2的客户为接收者包括最新群成员中属于第一即时通讯应用客户端的用户,因此,第一消息处理服务器将该群聊消息发送给第一即时通讯应用客户端2,以使第一即时通讯应用客户端2的用户能够及时获得该群聊消息。
需要说明的是,在步骤S6中若确定本地存储的群聊消息对应的群版本信息与最新群版本信息一致,且群聊消息对应群组中的群成员除了包括第二即时通讯应用客户端用户之外,若还包括第一即时通讯应用客户端的其他用户时,可以不用执行上述步骤S7和步骤S8,第一互通发消息服务器可将本地存储的对应群成员信息以及群聊消息转发给第一消息处理服务器,第一消息处理服务器将该群聊消息发送接收者包括最新群成员中属于第一即时通讯应用客户端的用户。
本发明实施例中,互通消息服务器接收到步骤S4中第一互通发消息服务器发送的群聊消息之后,还可以执行以下步骤:
步骤S11:互通消息服务器将第一互通发消息服务器投递的群聊消息存储在本地存储节点。
步骤S12:互通消息服务器确定多个存储节点中大于预设数目的存储节点存储该群聊消息成功时,向第一互通发消息服务器发送存储成功确认消息。
在本发明实施例中,互通消息服务器可以将第一互通发消息服务器投递的群聊消息先存储在本地的存储节点,在存储节点存储该群聊消息时,可以按照消息的接收顺序,以先入先出的原则将该群聊消息存储在存储节点中。
在本发明实施例中,为了保证互通消息服务器中保存的互通消息的可靠性,存储该群聊消息的存储节点可以包括多个,即多个存储节点的同时按照消息的接收顺序,以先入先出的原则存储该群聊消息。这多个存储节点可以是专门用于存储发送给第二即时通讯应用客户端的用户的消息,即,互通消息服务器接收到该群聊消息,确定该群聊消息是发送给第二即时通讯应用客户端的用户的消息之后,将其存储在这多个存储节点中。
这里以互通消息服务器中专门用于存储发送给第二即时通讯应用客户端的用户的消息的存储节点包括三个为例,如图4所示,三个存储节点分别为互通存储1、互通存储2、以及互通存储3,互通消息服务器按照群聊消息的接收顺序,以先入先出的原则将群聊消息分别存储在这个三个存储节点。图4中互通存储1、互通存储2、以及互通存储3中的序号3表示该群聊消息,“第一代理”表示互通消息服务器中专门用于代为管理读取的功能模块,“第二代理”表示互通消息服务器中专门用于代为管理写入的功能模块。
为了进一步保证互通消息服务器中保存的互通消息的可靠性,在其多个存储节点存储同一群聊消息时,还可以确定各个存储节点是否成功存储该同一群聊消息,并假设若确定多个存储节点中大于预设数目的存储节点存储同一群聊消息成功,则确定该同一群聊消息在互通消息服务器中存储成功,还可以向第一互通发消息服务器发送存储成功的确认消息。
其中,预设数目可以根据实际需要灵活设置,假设多个存储节点数目为N,那么,预设数目可以设置为N/2+1,也可以设置为N/2等,具体的在图4所示的三个存储节点中,假设有2个或2个以上的存储节点存储该群聊消息成功,则确定该群聊消息在互通消息服务器中存储成功。
在本发明实施例中,互通消息服务器若存在有存储节点存储该群聊消息失败,还可以从存储成功的存储节点获取存储失败的群聊消息,并重新存储到存储失败的存储节点中。例如图4中,互通消息服务器的互通存储1和互通存储2存储该群聊消息成功,而互通存储3存储该群聊消息失败,那么,互通消息服务器可以从互通存储1或互通存储2中获取该群聊消息,并重新存储在互通存储3中。
步骤S13:互通消息服务器将群聊消息发送给第二消息服务器。
步骤S14:第二消息服务器将群聊消息发送给接收者属于第二即时通讯应用客户端的用户。
互通消息服务器存储该群聊消息之后,可主动将该群聊消息发送给第二消息服务器,也可在接收到第二消息服务器发送的消息获取请求时,向第二消息服务器发送该群聊消息。
请继续参考图4,互通消息服务器向第二消息服务器发送该群聊消息之前,需要从存储节点读取该群聊消息,在本发明实施例中,为了进一步保证互通消息服务器发送给第二消息服务器的群聊消息为正确、可靠的消息,可如图4所示,对保存该群聊消息的所有存储节点进行读操作,即分别从互通存储1、互通存储2、以及互通存储3读取该群聊消息。并假设若大于预设数目的存储节点在读取该群聊消息时读取成功,则向第二消息服务器发送成功读取的群聊消息。然后由第二消息服务器将群聊消息发送给接收者属于第二即时通讯应用客户端的用户,从而完成第一即时通讯应用客户端的用户向第二即时通讯应用客户端的用户发送群聊消息的消息传递。
其中,预设数目可以根据实际需要灵活设置,假设多个存储节点数目为N,那么,预设数目可以设置为N/2+1,也可以设置为N/2等,在此就不重复叙述了。
下面介绍,第一即时通讯应用客户端的用户接收第二即时通讯应用客户端的用户发送的群聊消息时的消息传递流程,如图5所示,包括:
步骤S20:第二即时通讯应用客户端向第二消息服务器发送群聊消息。
步骤S21:第二消息服务器将群聊消息发送到互通消息服务器中。
本发明实施例中,第二即时通讯应用客户端的用户可在包括第一即时通讯应用客户端用户的群组中发布群聊消息,该群组中包括的第一即时通讯应用客户端用户数量可以为一个也可以为多个,该群组中还可包括第二即时通讯应用客户端的其他用户,发布群聊消息的用户所在的第二即时通讯应用客户端将该群聊消息发送到第二消息服务器中,进而由第二消息服务器将该群聊消息投递到互通消息服务器。
步骤S22:互通消息服务器按照群聊消息的接收顺序,以先入先出的原则对群聊消息设定消息拉取的序号后,存储在多个存储节点中。
在本发明实施例中,互通消息服务器接收到第二消息服务器发送的群聊消息之后,可将该群聊消息存储在多个节点中,这多个节点可以是专门用于存储发送给第一即时通讯应用客户端的用户的消息。
在本发明实施例中,为了让第一互通收消息服务器后续能够准确的从互通消息服务器中拉取发送给第一即时通讯应用客户端的用户的消息,互通消息服务器在存储发送给第一即时通讯应用客户端的消息时,还可设置消息拉取的序号,以便第一互通收消息服务器按照消息拉取序号准确、有序的拉取消息,从而达到降低消息重复拉取、消息遗漏等情况的发生,进而提升消息的可靠性。
这里继续以互通消息服务器中专门用于存储发送给第一即时通讯应用客户端的消息的存储节点包括三个为例,来对互通消息服务器中存储接收到的第二即时通讯应用客户端发送给第一即时通讯应用客户端的群聊消息的过程进行说明。
如图6A所示,三个存储节点分别为互通存储1、互通存储2、以及互通存储3,互通消息服务器按照群聊消息的接收顺序,以先入先出的原则对群聊消息设定消息拉取的序号,其中,消息拉取的序号是指,第一互通收消息服务器从三个存储节点分别顺序拉取第二即时通讯应用客户端发送给第一即时通讯应用客户端的消息的序号,以下简称序号。
图6A中假设互通消息服务器接收本次的群聊消息之前,还依次接收到消息1至消息6,其中,消息1至消息6可以是第二即时通讯应用客户端发送给第一即时通讯应用客户端的群聊消息或单聊消息,那么按照消息的接收顺序,以及先入先出的原则,消息互通服务器分别在三个存储节点中先依次存储消息1至消息6,同时为各消息设定消息拉取的序号,图6A中各个存储节点中标识1-6分别表示依次存储的消息1至消息6,同时假设消息1至消息6的序号依次为1至6。当接收到本次第二即时通讯应用客户端发送给第一即时通讯应用客户端的群聊消息,可以为该群聊消息设定序号7,并分别存储在三个存储节点中,即图6A所示的写入过程。
步骤S23:互通消息服务器确定多个存储节点中大于预设数目的存储节点存储群聊消息成功时,向发送该群聊消息的第二消息服务器发送存储成功确认消息。
在本发明实施例中,同样的,为了进一步保证互通消息服务器中保存的互通消息的可靠性,在其多个存储节点存储群聊消息时,确定个存储节点是否成果存储该同一群聊消息,并假设若确定多个存储节点中大于预设数目的存储节点存储同一群聊消息成功,则确定该同一群聊消息在互通消息服务器中存储成功,还可以向发送该群聊消息的第二消息服务器发送存储成功确认消息,在此就不重复叙述。
步骤S24:第一互通收消息服务器根据最近一次从互通消息服务器中拉取的消息的序号,确定本次需要拉取的消息的目标序号。
步骤S25:第一互通收消息服务器向互通消息服务器发送消息拉取请求,该请求携带目标序号。
在本发明实施例中,第一互通收消息服务器可以按照预设的周期从互通消息服务器中拉取第二即时通讯应用客户端用户发送给第一即时通讯应用客户端用户的消息,该周期可以根据实际需要灵活设置。第一互通收消息服务器在从互通消息服务器中拉取消息之前,可先根据最近一次从互通消息服务器中拉取的消息的序号,确定本次需要拉取的消息的目标序号。
例如图6B所示,假设最近一次从互通消息服务器中拉取的消息包括消息1、消息2、以及消息3这三条消息(图6B中的消息1、2、3),即第一互通收消息服务器每一次从互通消息服务器中拉取三条消息,假设消息1、2、3的序号分别为1、2、3,那么,本次需要拉取的三条消息的分别为消息4、消息5、消息6,对应的,第一互通收消息服务器根据最近一次拉取的三条消息的序号1、2、3,可确定本次需要拉取的消息的目标序号,其中,目标序号可选择本次需要拉取的三条消息中任一条消息的序号,如消息4对应的序号4、或消息5对应的序号5,或消息6对应的序号6,图6B中,使用本次需要拉取的第一条消息即消息4对应的序号4作为目标序号,然后在向互通消息服务器的发送消息拉取请求携带目标序号4。即,作为本次拉取的消息的目标序号可预先与互通消息服务器通过协议商定。
在本发明实施例中,第一互通收消息服务器每一次从互通消息服务器中拉取的消息条数也可以灵活设置,例如设置为一条、或设置为图6B所示的三条,或设置为其他数目。
步骤S26:互通消息服务器从多个存储节点中获取目标序号对应消息,并删除多个存储节点中已被拉取的消息。
请继续参考图6B,互通消息服务器从接到的消息拉取请求中携带的目标序号4,可知本次需要拉取的三条消息的分别为消息4、消息5、消息6,那么,消息4、消息5、消息6即为步骤S26中的目标序号对应的消息,且假设消息4、消息5、消息6均为群聊消息。因此,互通消息服务器可从互通存储1、互通存储2、以及互通存储3中依次读取消息4、消息5、消息6。
同样的,在读取消息4、消息5、消息6时,若大于预设数目的存储节点在读取该群聊消息时读取成功,则确定互通消息服务器读取消息4、消息5、消息6成功,以保证互通消息服务器发送给第一互通收消息服务器的群聊消息为正确、可靠的消息。若小于或等于预设数目的存储节点在读取该群聊消息时读取成功,则确定互通消息服务器读取消息4、消息5、消息6失败,并重新读取直到读取成功。
在本方发明实施例中,为了进一步保证互通消息拉取过程有序进行,还可以为存储在各存储节点中的消息设置表示各消息是否被拉取状态,例如图6B所示,包括确定拉取状态(对应图6B已经确认),已拉取没有确定的状态,以及没有被拉取的状态,对应的,互通消息服务器接到的消息拉取请求中携带的序号4之后,还可以将最近一次拉取的消息1、2、3的状态从已拉取没有确定的状态更改为图6B所示的确定状态,以表示消息1、2、3已被成功拉取。在本发明实施例中,为了释放互通消息服务器各存储节点的存储空间,还可以将确定状态的消息从各存储节点中删除。
步骤S27:互通消息服务器向第一互通收消息服务器发送群聊消息,该群聊消息中携带其对应的最新群版本信息。
在本发明实施例中,在上述步骤S26中,互通消息服务器读取消息4、消息5、消息6即目标序号对应群聊消息成功之后,可将该消息发送给第一互通收消息服务器,同时可将消息4、消息5、消息6的拉取状态从没有被拉取更改为图6B所示的已拉取没有确定的状态。
在本发明实施例中,互通消息服务器向第一互通收消息服务器发送群聊消息时,还可以在群聊消息中携带其对应的最新群版本信息,以便于第一互通收消息服务器将该群聊消息成功发送到各个群成员。
步骤S28:第一互通收消息服务器确定接收到的群聊消息的最新群版本信息与本地存储的对应的群版本信息是否一致,若不一致,执行步骤S29。
步骤S29:第一互通收消息服务器向互通消息服务器发送群聊消息对应的最新群成员信息获取请求。
步骤S30:互通消息服务器向第一互通收消息服务器发送最新群成员信息。
同样的,第一互通发消息服务器在接收到互通收消息服务器发送的携带有最新群版本信息的群聊消息之后,可以通过确定本地存储的该群聊消息的群版本信息与最新群版本信息是否一致,若版本信息不一致,则表征群聊消息的群组中群成员发生变化,此时,向互通消息服务器发送群聊消息对应的最新群成员信息获取请求,并获得互通消息服务器发送的最新群成员信息,具体过程参考上文,在此就不重复叙述了。
步骤S31:第一互通收消息服务器将最新群成员信息以及群聊消息转发给第一消息处理服务器。
步骤S32:第一消息处理服务器根据最新群成员信息,将群聊消息发送给接收者包括最新群成员中属于第一即时通讯应用客户端的用户。
在本发明实施例中,第一互通收消息服务器接收到互通消息服务器发送的最新群成员信息之后,可将最新群成员信息以及群聊消息转发给第一消息处理服务器,以便第一消息处理服务器中将该群聊消息发送给接收者包括最新群成员中属于第一即时通讯应用客户端的所有用户,从而完成第一即时通讯应用客户端收取第二即时通讯应用客户端发送的群聊消息的过程。
如图7所示,为在本发明实施例中,第一即时通讯应用客户端向第二即时通讯应用客户端发送单聊消息时的消息传递流程,包括:
步骤S40:第一即时通讯应用客户端向第一消息处理服务器发送单聊消息。
步骤S41:第一消息处理服务器确定接收的消息为互通类的单聊消息后,将该单聊消息投递到第一互通发消息服务器。
在本发明实施例中,第一即时通讯应用客户端的用户还可以向与其具有好友关系的第二即时通讯应用客户端用户发送单聊消息,即第一即时通讯应用客户端的用户在与第二即时通讯应用客户端用户的好友聊天界面中发布单聊消息,该单聊消息就会从第一即时通讯应用客户端发送到第一消息处理服务器。
需要注意的是,在实际应用中,第一即时通讯应用客户端的用户也可以与具有好友关系的第一即时通讯应用客户端的其他用户进行单聊消息的收发,由于该单聊消息不是互通类的消息,可直接由第一消息处理服务器将该单聊消息发送给第一即时通讯应用客户端用户。
步骤S42:第一互通发消息服务器对单聊消息进行特定格式转换。
步骤S43:第一互通发消息服务器将格式转换后的单聊消息投递到互通消息服务器。
在本发明实施例中,第一互通发消息服务器需要将互通的单聊消息转换第二即时通讯应用客户端对应的特定格式之后,投递到互通消息服务器。
步骤S44:互通消息服务器确定单聊消息的接收者是否与其发送者为好友关系,若是,则执行步骤S45至步骤S48,否则执行步骤S49至步骤S52。
步骤S45:互通消息服务器将单聊消息存储在本地存储节点。
步骤S46:互通消息服务器确定多个存储节点中大于预设数目的存储节点存储该单聊消息成功时,向第一互通发消息服务器发送存储成功确认消息。
步骤S47:互通消息服务器将单聊消息发送第二消息服务器。
步骤S48:第二消息服务器将单聊消息发送给第二即时通讯应用客户端的用户。
即在本发明实施例中,互通消息服务器保存有第一即时通讯应用客户端与第二即时通讯应用客户端的用户之间的最新的好友关系,当互通消息服务器确定单聊消息的接收者即第二即时通讯应用客户端用户,与其发送者即第一即时通讯应用客户端用户为好友关系时,可将单聊消息存储在本地存储节点,并向第一互通发消息服务器反馈投递成功的消息。
互通消息服务器存储单聊消息的方式可参考上文存储群聊消息的方式,即可以按照消息的接收顺序,以先入先出的原则将该单聊消息存储在一个或多个存储节点中,在此就不重复叙述。
互通消息服务器存储该单聊消息之后,可主动将该单聊消息发送给第二消息服务器,也可在接收到第二消息服务器发送的消息获取请求时,向第二消息服务器发送该单聊消息。然后由第二消息服务器将单聊消息发送给第二即时通讯应用客户端的用户,从而完成第一即时通讯应用客户端向第二即时通讯应用客户端发送单聊消息的消息传递。
在实际应用中,在执行步骤S44时,也存在互通消息服务器确定单聊消息的接收者与其发送者不是好友关系的情况,例如,单聊消息的接收者在其第二客户端,将发送者即第一即时通讯应用客户端用户删除,而互通消息服务器还没有来得及通知第一即时通讯应用,导致第一即时通讯应用并不知道单聊消息的接收者与其发送者之间的好友关系已解除,此时,可执行下面步骤S49至步骤S51:
步骤S49:互通消息服务器向第一互通发消息服务器发送拒绝投递指示;
步骤S50:第一互通发消息服务器根据接收到的拒绝投递指示,确定单聊消息接收者不是发送者的好友的关系,向第一消息处理服务器发送单聊消息接收者不是发送者的好友的指示;
步骤S51:第一消息处理服务器向发送单聊消息的第一即时通讯应用客户端发送指示消息发送失败的信息。
即,互通消息服务器确定单聊消息的接收者与其发送者不是好友关系时,可向第一互通发消息服务器发送拒绝投递指示,第一互通发消息服务器接收到的拒绝投递指示之后,确定单聊消息接收者不是发送者的好友的关系,并向第一消息处理服务器发送单聊消息接收者不是发送者的好友的关系的指示,以便第一消息处理服务器向发送单聊消息的第一即时通讯应用客户端发送指示消息发送失败的信息。
下面介绍,第一即时通讯应用客户端接收第二即时通讯应用客户端发送单聊消息时的消息传递流程,如图8所示,包括:
步骤S80:第二即时通讯应用客户端向第二消息服务器发送单聊消息。
步骤S81:第二消息服务器将单聊消息发送到互通消息服务器中。
本发明实施例中,第二即时通讯应用客户端的用户在其与第一即时通讯应用客户端用户的好友聊天界面,向该第一即时通讯应用客户端用户发布单聊消息时,第二即时通讯应用客户端就会将该单聊消息发送给第二消息服务器,以便第二消息服务器将该单聊消息投递到互通消息服务器中。
步骤S82:互通消息服务器按照单聊消息的接收顺序,以先入先出的原则对单聊消息设定消息拉取的序号后,存储在多个存储节点中。
步骤S83:互通消息服务器确定多个存储节点中大于预设数目的存储节点存储单聊消息成功时,向发送该单聊消息的第二消息服务器发送存储成功确认消息。
在本发明实施例中,同样的,为了让第一互通收消息服务器后续能够准确的从互通消息服务器中拉取发送给第一即时通讯应用客户端的单聊消息,互通消息服务器在存储发送给第一即时通讯应用客户端的单聊消息时,还可设置消息拉取的序号,然后再存储到多个存储节点中,存储时,若确定多个存储节点中大于预设数目的存储节点存储该单聊消息成功,则确定该单聊消息在互通消息服务器中存储成功,还可以向发送该单聊消息的第二消息服务器发送存储成功确认消息,具体过程参照上文,在此就不重复叙述。
步骤S84:第一互通收消息服务器根据最近一次从互通消息服务器中拉取的消息的序号,确定本次需要拉取的消息的目标序号。
步骤S85:第一互通收消息服务器向互通消息服务器的发送消息拉取请求,该请求携带目标序号。
在本发明实施例中,第一互通收消息服务器可以按照预设的周期从互通消息服务器中拉取第二即时通讯应用客户端用户发送给第一即时通讯应用客户端用户的消息,还可先根据最近一次从互通消息服务器中拉取的消息的序号,确定本次需要拉取的消息的目标序号,然后在发送给互通消息服务器的消息拉取请求携带目标序号,具体过程参照上文叙述,在此就不重复叙述。
步骤S86:互通收消息服务器从多个存储节点中获取目标序号对应单聊消息,并删除多个存储节点中已被拉取的消息。
步骤S87:互通收消息服务器向第一互通收消息服务器发送单聊消息。
在本发明实施例中,互通收消息服务器从多个存储节点中获取目标序号对应消息,这里假设,目标序号对应消息为单聊消息,那么,互通收消息服务器可将该单聊消息发送给第一互通收消息服务器,同时还可以删除多个存储节点中已被拉取的消息,具体过程参考上文叙述,在此就不重复叙述。
步骤S88:第一互通收消息服务器确定单聊消息的接收者与发送者是否为好友关系,若是,则执行步骤S89至步骤S90,否则执行步骤S91至步骤S93。
步骤S89:第一互通收消息服务器将单聊消息转换成与第一即时通讯应用客户端对应的格式后,发送给第一消息处理服务器。
步骤S90:第一消息处理服务器将单聊消息发送给第一即时通讯应用客户端的用户。
即,第一互通收消息服务器确定发送单聊消息的第二即时通讯应用客户端用户与接收该消息的第一即时通讯应用客户端用户为好友关系时,可以将单聊消息转换成与第一即时通讯应用客户端对应的格式后,发送给第一消息处理服务器,以便第一消息处理服务器将单聊消息发送给第一即时通讯应用客户端即第一即时通讯应用客户端的用户。
在实际应用中,在执行步骤S 88时,也存在单聊消息的接收者与其发送者不是好友关系的情况,例如,单聊消息的接收者在其第一即时通讯应用客户端,将发送者即第二即时通讯应用客户端用户删除,而互通消息服务器还没有来得及通知第二即时通讯应用客户端,导致第二即时通讯应用客户端并不知道单聊消息的接收者与其发送者之间的好友关系已解除,此时,可执行下面步骤S91至步骤S93:
步骤S91:第一互通收消息服务器向互通消息服务器发送单聊消息接收者不是发送者的好友而拒绝投递的指示。
步骤S92:互通消息服务器向第二消息服务器发送单聊消息发送失败的指示。
步骤S93:第二消息服务器向发送单聊消息的第二即时通讯应用客户端发送单聊消息失败的指示。
即,第一互通收消息服务器确定单聊消息的接收者与其发送者不是好友关系时,可向互通消息服务器发送单聊消息接收者不是发送者的好友而拒绝投递的指示,互通消息服务器接收到该指示之后,并向第二消息服务器发送单聊消息接收者不是发送者的好友的关系的指示,以便第二消息处理服务器向发送单聊消息的第二即时通讯应用客户端发送单聊消息失败的指示。
基于同一发明构思,本发明实施例提供了一种即时通讯方法,包括:
第一即时通讯应用服务器向互通消息服务器发送互通类消息,互通类消息为第一即时通讯应用的用户发给其他即时通讯应用的用户的即时消息;以及
第一即时通讯应用服务器从互通消息服务器获取其他即时通讯应用的用户发送给其用户的互通类消息并转发给其用户;
其中,第一即时通讯应用服务器从互通消息服务器获取的互通类消息时,互通消息服务器根据互通类消息的接收顺序,以先入先出的原则从与所述第一即时通讯应用服务器对应的各存储节点中确定出的。
基于同一发明构思,本发明实施例提供了一种即时通讯方法,包括:
互通消息服务器接收各个即时通讯应用服务器发送的互通类消息;
互通消息服务器分别针对各互通类消息,按照其接收顺序,以先入先出的原则设定消息获取的序号后,分别存储在互通消息服务器中与接收该互通类消息的即时通讯应用服务器对应的各存储节点中。
基于同一发明构思,本发明实施例提供一种计算装置,包括至少一个处理器、以及至少一个存储器,其中,存储器存储有计算机程序,当计算机程序被处理器执行时,使得处理器执行本发明实施例中提供的即时通讯方法的步骤。
基于同一发明构思,本发明实施例提供了一种存储介质,存储介质存储有计算机指令,当计算机指令在计算机上运行时,使得计算机执行本发明实施例中提供的即时通讯方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种即时通讯***,其特征在于,包括至少两个不同类型的即时通讯子***,以及分别通信连接所述每个即时通讯子***的互通消息服务器,其中:
每个即时通讯子***,将本即时通讯子***发给其他即时通讯子***的互通类消息,发送到所述互通消息服务器,以及从所述互通消息服务器获取其他即时通讯子***发送给本即时通讯子***的互通类消息,所述其他即时通讯子***包括与所述本即时通讯子***的类型不同的即时通讯子***,所述互通类消息为群组中的群聊消息,所述群组中包含属于本即时通讯子***用户的群成员和属于其他即时通讯子***用户的群成员;
所述互通消息服务器接收各个即时通讯子***发送的互通类消息,并分别针对各个即时通讯子***,按照接收顺序存储发送给即时通讯子***的互通类消息,以及在每个即时通讯子***获取消息时,根据互通类消息的接收顺序,以先入先出的原则将存储的互通类消息发送给即时通讯子***;
其中,所述至少两个即时通讯子***包括用于为其他即时通讯子***用户提供企业服务的企业即时通讯子***,所述企业即时通讯子***包括互通发消息服务器、互通收消息服务器、以及消息处理服务器;
所述消息处理服务器,用于确定来自企业即时通讯子***用户客户端的消息为发送给其他即时通讯子***用户的互通类消息时,将该消息发送给所述互通发消息服务器;以及,接收到所述互通收消息服务器发送的互通类消息时,转发给互通类消息接收方的客户端;
所述互通发消息服务器,用于将互通类消息转换为特定格式后发送到所述互通消息服务器;
所述互通收消息服务器,用于从所述互通消息服务器获取发送给所述企业即时通讯子***用户的特定格式的互通类消息,并将拉取的互通类消息转换为与企业即时通讯子***对应的格式后发送给所述消息处理服务器;
所述互通收消息服务器,还用于在获取的互通类消息为群聊消息时,获得所述互通消息服务器发送的该互通类消息的群组最新版本信息,并在确定所述群组最新版本信息与本地存储的该互通类消息的群组版本信息不匹配时,从所述互通消息服务器获取该互通类消息的群组最新群成员信息,并将群组最新群成员信息以及该互通类消息传递给所述消息处理服务器,由所述消息处理服务器将该互通类消息发送给群组最新群成员信息中的各群成员。
2.如权利要求1所述的***,其特征在于,所述互通消息服务器包括多个存储节点,其中:
所述互通消息服务器分别针对每个即时通讯子***,按照接收顺序以先入先出的原则对发送给该即时通讯子***的互通类消息设定消息拉取的序号,并将设定了序号的互通类消息分别存储在该即时通讯子***对应的各个存储节点中。
3.如权利要求2所述的***,其特征在于,所述互通消息服务器还用于:
针对每个互通类消息,确定接收该互通类消息的即时通讯子***对应的多个存储节点中大于预设数目的存储节点存储同一互通类消息成功时,向发送该互通类消息的即时通讯子***发送存储成功确认消息;以及
从存储互通类消息成功的存储节点获取其他存储节点存储失败的互通类消息,并重新存储到其他存储节点中。
4.如权利要求2所述的***,其特征在于,所述互通消息服务器还用于:
针对每个即时通讯子***发送的获取消息请求,根据获取消息请求中携带的指示信息,分别从该即时通讯子***对应的多个存储节点获取与该指示信息对应的互通类消息,并转发给该即时通讯子***;以及删除该即时通讯子***对应的多个存储节点中已获取的互通类消息。
5.如权利要求1-4任一项所述的***,其特征在于,所述互通收消息服务器,还用于:
根据最近一次从所述互通消息服务器中拉取的互通类消息的序号,确定本次需要拉取的互通类消息的目标序号,并在发送给所述互通消息服务器的消息拉取请求中携带包括所述目标序号的指示信息。
6.如权利要求1-4任一项所述的***,其特征在于,所述互通发消息服务器,还用于:
在接收到企业即时通讯子***用户发送的互通类消息为群聊消息时,在群聊消息携带对应的群组版本信息后发送给所述互通消息服务器,所述互通消息服务器在确定携带的群组版本信息与其对应的群组最新版本信息不匹配时,向所述互通发消息服务器发送对应的群组最新群成员信息,所述互通发消息服务器将所述群组最新群成员信息以及所述群聊消息传递给所述消息处理服务器,由所述消息处理服务器根据所述群组最新群成员信息,将所述群聊消息发送给群组最新群成员信息中属于企业即时通讯子***用户的群成员。
7.一种即时通讯方法,其特征在于,包括:
第一即时通讯应用服务器向互通消息服务器发送互通类消息,所述互通类消息为群组中的第一即时通讯应用的用户发给其他即时通讯应用的用户的即时消息,所述其他即时通讯子***包括与所述第一即时通讯应用的类型不同的即时通讯应用;以及
第一即时通讯应用服务器从所述互通消息服务器获取其他即时通讯应用的用户发送给其用户的互通类消息并转发给其用户;其中,所述第一即时通讯应用服务器从所述互通消息服务器获取的互通类消息是,所述互通消息服务器根据互通类消息的接收顺序,以先入先出的原则从与所述第一即时通讯应用服务器对应的各存储节点中确定出的;
其中,第一即时通讯应用服务器包括互通发消息服务器、互通收消息服务器、以及消息处理服务器;
则所述第一即时通讯应用服务器向互通消息服务器发送互通类消息,包括:
所述消息处理服务器确定来自第一即时通讯应用用户的消息为发送给其他即时通讯应用用户的互通类消息时,将该消息发送给所述互通发消息服务器;
所述互通发消息服务器将互通类消息转换为特定格式后发送到所述互通消息服务器;
则所述第一即时通讯应用服务器从所述互通消息服务器获取其他即时通讯应用的用户发送给其用户的互通类消息并转发给其用户,包括:
所述互通收消息服务器从所述互通消息服务器,获取发送给所述第一即时通讯应用用户的特定格式的互通类消息,并将拉取的互通类消息转换为与第一即时通讯应用对应的格式后发送给所述消息处理服务器;
所述消息处理服务器接收到所述互通收消息服务器发送的互通类消息时,转发给互通类消息接收方的客户端;
其中,所述互通收消息服务器从所述互通消息服务器,获取发送给所述第一即时通讯应用用户的特定格式的互通类消息之后,还包括:
所述互通收消息服务器在获取的互通类消息为群聊消息时,获得所述互通消息服务器发送的该互通类消息的群组最新版本信息,并在确定所述群组最新版本信息与本地存储的该互通类消息的群组版本信息不匹配时,从所述互通消息服务器获取该互通类消息的群组最新群成员信息,并将群组最新群成员信息以及该互通类消息传递给所述消息处理服务器,由所述消息处理服务器将该互通类消息发送给群组最新群成员信息中的各群成员。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一即时通讯应用服务器,根据最近一次从所述互通消息服务器中获取的互通类消息的序号,确定本次需要获取的互通类消息的目标序号,并在发送给所述互通消息服务器的消息获取请求中携带包括所述目标序号的指示信息。
9.一种即时通讯方法,其特征在于,包括:
互通消息服务器接收各个即时通讯应用服务器发送的互通类消息,所述互通类消息为群组中的群聊消息,所述群组中包含属于企业即时通讯子***用户的群成员和属于其他即时通讯子***用户的群成员;其中,企业即时通讯子***用于为其他即时通讯子***用户提供企业服务,所述企业即时通讯子***包括互通发消息服务器、互通收消息服务器、以及消息处理服务器;所述互通类消息是在所述消息处理服务器确定来自企业即时通讯子***用户客户端的消息为发送给其他即时通讯子***用户的互通类消息时,将该消息发送给所述互通发消息服务器后,经所述互通发消息服务器将互通类消息转换为特定格式后发送到所述互通消息服务器的;
所述互通消息服务器分别针对每一个互通类消息,按照其接收顺序以先入先出的原则设定消息获取的序号后,分别存储在所述互通消息服务器中与接收该互通类消息的即时通讯应用服务器对应的各存储节点中,以使所述互通收消息服务器从所述互通消息服务器获取发送给所述企业即时通讯子***用户的特定格式的互通类消息,并将拉取的互通类消息转换为与企业即时通讯子***对应的格式,以及获得所述互通消息服务器发送的该互通类消息的群组最新版本信息,并在确定所述群组最新版本信息与本地存储的该互通类消息的群组版本信息不匹配时,从所述互通消息服务器获取该互通类消息的群组最新群成员信息,并将群组最新群成员信息以及该互通类消息传递给所述消息处理服务器,由所述消息处理服务器将该互通类消息发送给群组最新群成员信息中的各群成员。
10.如权利要求9所述的方法,其特征在于,所述方法还包括:
针对每个互通类消息,确定接收该互通类消息的即时通讯子***对应的多个存储节点中大于预设数目的存储节点存储同一互通类消息成功时,向发送该互通类消息的即时通讯应用服务器发送存储成功确认消息;以及
从存储互通类消息成功的存储节点获取其他存储节点存储失败的互通类消息,并重新存储到其他存储节点中。
11.一种计算装置,其特征在于,包括至少一个处理器、以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行权利要求7-10中任一项所述方法的步骤。
12.一种存储介质,其特征在于,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求7-10任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910020631.2A CN111431790B (zh) | 2019-01-09 | 2019-01-09 | 一种即时通讯方法、装置、***及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910020631.2A CN111431790B (zh) | 2019-01-09 | 2019-01-09 | 一种即时通讯方法、装置、***及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111431790A CN111431790A (zh) | 2020-07-17 |
CN111431790B true CN111431790B (zh) | 2022-02-08 |
Family
ID=71545632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910020631.2A Active CN111431790B (zh) | 2019-01-09 | 2019-01-09 | 一种即时通讯方法、装置、***及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111431790B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116800704A (zh) * | 2022-03-17 | 2023-09-22 | 腾讯科技(深圳)有限公司 | 基于群聊的即时通讯方法、装置、设备及可读存储介质 |
CN115002057B (zh) * | 2022-05-26 | 2024-04-12 | 威艾特科技(深圳)有限公司 | 一种分布式多服务端即时通信方法 |
CN115842691B (zh) * | 2023-02-21 | 2023-05-23 | 北京友友天宇***技术有限公司 | 分布式群组通信的消息顺序性保证方法、装置和设备 |
CN117411845B (zh) * | 2023-12-14 | 2024-03-29 | 四川桃子健康科技股份有限公司 | 一种医疗聚合*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101257460A (zh) * | 2007-02-27 | 2008-09-03 | ***通信集团公司 | 即时消息临时群组会话***及创建和即时消息发送的方法 |
CN101778053A (zh) * | 2009-12-23 | 2010-07-14 | 中兴通讯股份有限公司 | 即时通讯工具互通方法及装置 |
CN105577505A (zh) * | 2014-10-14 | 2016-05-11 | 北京信威通信技术股份有限公司 | 跨平台即时通信***及其消息互通方法 |
CN106850402A (zh) * | 2017-01-16 | 2017-06-13 | 腾讯科技(深圳)有限公司 | 消息的传输方法和装置 |
CN108512741A (zh) * | 2018-02-06 | 2018-09-07 | 北京云中融信网络科技有限公司 | 即时通讯方法、装置及*** |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488928B (zh) * | 2009-01-06 | 2011-04-20 | 腾讯科技(深圳)有限公司 | 一种互联企业群通信设备及互联企业群通信方法 |
CN103716752B (zh) * | 2012-09-29 | 2017-06-27 | 上海贝尔股份有限公司 | 一种分发机器类通信的组消息的方法 |
CN104618349B (zh) * | 2015-01-13 | 2018-09-11 | 上海华为技术有限公司 | 一种集群通信***、服务器及通信方法 |
CN104901865B (zh) * | 2015-04-20 | 2017-11-21 | 上海云睦网络科技有限公司 | 一种基于全局单调序列号的移动端即时通讯信号同步方法 |
CN106470145B (zh) * | 2015-08-14 | 2020-12-22 | 腾讯科技(深圳)有限公司 | 即时通信的方法和装置 |
CN106789571A (zh) * | 2016-12-16 | 2017-05-31 | 邦彦技术股份有限公司 | 一种基于ims架构的跨域即时通讯方法及其*** |
CN107508747A (zh) * | 2017-09-12 | 2017-12-22 | 广东欧珀移动通信有限公司 | 融合通信的群组通信方法、服务器及计算机存储介质 |
-
2019
- 2019-01-09 CN CN201910020631.2A patent/CN111431790B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101257460A (zh) * | 2007-02-27 | 2008-09-03 | ***通信集团公司 | 即时消息临时群组会话***及创建和即时消息发送的方法 |
CN101778053A (zh) * | 2009-12-23 | 2010-07-14 | 中兴通讯股份有限公司 | 即时通讯工具互通方法及装置 |
CN105577505A (zh) * | 2014-10-14 | 2016-05-11 | 北京信威通信技术股份有限公司 | 跨平台即时通信***及其消息互通方法 |
CN106850402A (zh) * | 2017-01-16 | 2017-06-13 | 腾讯科技(深圳)有限公司 | 消息的传输方法和装置 |
CN108512741A (zh) * | 2018-02-06 | 2018-09-07 | 北京云中融信网络科技有限公司 | 即时通讯方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN111431790A (zh) | 2020-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111431790B (zh) | 一种即时通讯方法、装置、***及存储介质 | |
EP3402137B1 (en) | Methods and apparatuses for cross platforms conversations through a bot framework | |
CN108667899B (zh) | 多终端消息同步和隔离即时通讯方法及*** | |
US10764228B1 (en) | Automated message recall from a sender's device | |
CN107147620B (zh) | 一种消息交互处理方法、客户端和服务端 | |
US8886234B2 (en) | Techniques for unified messaging | |
CN111835837B (zh) | 多端适配的消息推送方法及*** | |
CN112118171A (zh) | 消息互通***、方法、装置、计算机设备及可读存储介质 | |
CN113391979A (zh) | 监控数据展示的处理方法、设备、***及存储介质 | |
CN104539510A (zh) | 一种基于多协议的信息推送***及方法 | |
CN103259715A (zh) | 一种管理多人会话的方法、装置及*** | |
CN102130845A (zh) | 回执报告的发送方法及处理*** | |
KR20150043335A (ko) | 확장 속성을 갖는 메시지 동기화 기법 | |
CN111416823A (zh) | 一种数据传输方法和装置 | |
CN110912805B (zh) | 消息读取状态的同步方法、终端、服务端及*** | |
EP3171565B1 (en) | Methods, devices and system for netconf hello packets interaction | |
CN105827736A (zh) | 一种消息发送方法及*** | |
JP7182467B2 (ja) | メッセージデータを選択的に適合して送信するための方法とシステム | |
US8755397B2 (en) | Asynchronous communication in an unstable network | |
CN116846959A (zh) | 一种基于mqtt协议的消息收发方法及装置 | |
CN114338584B (zh) | 消息撤回方法和消息传输*** | |
US20110161446A1 (en) | Apparatus and method for synchronizing data between instant messaging clients in communication system | |
CN110620672A (zh) | 多人会话数据处理方法、装置、计算机设备和存储介质 | |
CN105025448A (zh) | 一种推送im信息的方法和***、服务器以及平台 | |
CN105024908A (zh) | 一种推送im信息的方法和***、服务器以及平台 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40025951 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |