共享用户信息、分布式即时通信的方法及其系统和装置的制作方法

文档序号:7927816阅读:100来源:国知局
专利名称:共享用户信息、分布式即时通信的方法及其系统和装置的制作方法
技术领域
本发明涉及无线网络与计算机技术领域,尤其涉及一种共享用户信息的方 法、分布式即时通信的方法,及其系统和装置。
背景技术
目前,很多规模较大的公司在各个不同的区域拥有分公司。各分公司内部 员工之间需要进行即时通信,各分公司的员工之间也需要即时通信。为了解决 各分公司内部以及各分公司之间的员工通过即时通信等方式进行交流的问题, 现有技术中,通常在公司总部部署一台服务器,各个分公司的即时通信客户端
登录到该服务器并通过该服务器进行交流。这样将导致以下问题
1、 各个分公司内部的即时通信客户端以及组织架构都通过部署在总部的 服务器进行管理,因此限制了各分公司对其内部的即时客户端管理的灵活性并 造成了服务器的管理负荷;
2、 由于分公司内部的即时通信客户端进行即时通信的数据量较多,分公 司之间的即时通信客户端进行即时通信的数据量相对较少,而一台服务器支持 即时通信客户端的数据量有限,因此如果大量客户端进行即时通信时,则会导 致出现瓶颈,如服务器带宽不足、内存占用过高等,而导致服务器运行不稳定, 也给网络带宽造成极大的压力。
因此,目前迫切需要一种客户端管理灵活以及通信性能稳定性好的企业内 部通信的解决方案。

发明内容
本发明实施例提供一种用户信息共享的方法,以解决现有技术中企业内部
通过一台服务器管理所有通信客户端所导致的管理灵活性差以及服务器管理 负荷较重的问题。
本发明实施例提供的共享用户信息的方法中预先设置中心服务器以及多
个分支服务,该方法包4舌
第一分支服务器通过中心服务器向第二分支服务器请求获取用户列表; 第二分支服务器根据该请求,将其所辖用户的第二用户列表通过中心服务
器发送给第一分支服务器;
第一分支服务器接收并保存第二用户列表。
本发明的上述实施例,通过设置中心服务器以及若干个分支服务器,以及 由分支服务器获取其他分支服务器所辖用户的用户列表并保存,而中心服务器 只负责各分支服务器之间的消息转发,因而与现有技术相比,将中心服务器对 用户列表的管理分担到各分支服务器,由分支服务器管理和保存该分支服务器 和其他分支服务器所辖用户的用户列表。通过合理设置分支服务器,例如对于 集群企业来说,每个分公司设置一个分支服务器,采用上述技术方案,各分公 司内部可通过其分支服务器管理其用户列表,以及保存其他分公司的用户列 表,从而提高了用户信息管理的灵活性以及分担了管理负荷,并且为后续各分 公司内部客户端之间,以及各分公司之间的客户端进行即时通信提供了条件。
本发明实施例提供一种分布式即时通信的方法、系统及装置,以解决现有 技术中通过一 台服务器处理所有即时通信客户端之间的即时通信所导致的服 务器和网络压力大、通信性能差的问题。
本发明实施例提供的分布式即时通信的方法中预先设置中心服务器以及 多个分支服务,该方法包括
第 一分支服务器接收所述即时通信客户端发送的即时消息;
当判断所述即时消息的接收方为该分支服务器所辖的即时通信客户端时, 将所述即时消息发送给该接收方客户端;
当判断所述即时消息的接收方为第二分支服务器所辖的即时通信客户端
时,将所述即时消息通过中心服务器转发到第二分支服务器,第二分支服务器 将所述即时消息发送到该消息的接4t^户端。
本发明实施例提供的分布式即时通信系统,包括中心服务器以及一个分支
服务器,其中
分支服务器,用于发送获取其他分支服务器所辖用户的用户列表的请求, 接收其他分支服务器发送的用户列表并保存;当即时通信客户端通过该分支服 务器保存的用户列表选择其他客户端并向其发送即时消息时,接收并判断该即 时消息的接收方是否是该分支服务器所辖的客户端,若是,则将该即时消息发 送到接收方客户端,否则将该即时消息发送给中心服务器;以及,接收中心服 务器转发的即时消息并发送到该即时消息的接收方客户端;
中心服务器,用于将所述获取其他分支服务器所辖用户的用户列表的请求 转发给相应的分支服务器,将相应分支服务器发送的用户列表转发给发出给所 述分支服务器;以及,将第一分支服务器发送的所述即时消息转发给第二分支 服务器。
本发明实施例提供的分布式即时通信系统中的分支服务器,包括 存储模块,用于存储该分支服务器所辖用户的用户列表,以及其他分支服 务器所辖用户的用户列表;
请求模块,用于发送获取其他分支服务器所辖用户的用户列表; 接收模块,用于接收其他分支服务器发送的用户列表或该用户列表中用户 信息,并保存到所述存储模块;
处理模块,用于当通信客户端通过所述存储模块存储的用户列表选择其他 客户端并向其发送即时消息时,接收所述即时消息,并判断所述即时消息的接 收方是否为该分支服务器所辖的即时通信客户端,若是,则将所述即时消息发 送给该接收方客户端;否则将所述即时消息发送到中心服务器。
本发明的上述实施例,通过设置中心服务器以及若干分支服务器,以及由 分支服务器对于从即时通信客户端接收到的即时消息进行判断,若是发送给该
分支服务器所辖客户端的,则由该分支服务器负责发送到接收方客户端,若是 发送给其他分支服务器所辖客户端的,则通过中心服务器转发给相应的分支服 务器并由该分支服务器发送到接收方客户端。可以看出,分支服务器负担了其 所辖客户端的即时消息交互的处理,比现有技术通过一 台服务器进行处理相 比,减轻了服务器的处理压力,也减轻了网络负荷,从而可^f是高即时通信的性 能。另外,将中心服务器对用户列表的管理分担到各分支服务器,由分支服务 器管理和保存该分支服务器和其他分支服务器所辖用户的用户列表,也提高了 用户信息管理的灵活性以及分担了管理负荷。


图1为本发明实施例提供的分布式即时通信系统的架构示意图; 图2为本发明实施例中即时通信过程所涉及到的主要流程的时序图; 图3为本发明实施例中分支服务器登录中心服务器过程中的数据加密/解 密验证以及身份—^i正的时序图4为本发明实施例中各分支服务器之间同步用户信息的时序图5为本发明实施例中分支服务器获取以及更新用户状态信息的时序图6为本发明实施例中的组织架构示意图7为本发明实施例中客户端通过组织结构获取用户信息以及更新組织结 构或用户信息的过程示意图8为本发明实施例中的中心服务器的结构示意图; 图9为本发明实施例中的分支服务器的结构示意图。
具体实施例方式
针对现有技术上述的缺陷,本发明实施例提供一种分布式即时通信系统, 以及基于该系统的用户信息共享方法、即时通信方法。下面结合附图对本发明 实施例进行详细描述。
参见图1,为本发明实施例提供的分布式即时通信的系统架构示意图,该 示意图以一集群企业为例,描述了该集群企业总部以及各分公司(各分公司可 位于同一地区或不同地区)的即时通信系统架构。
如图1所示,在该集群企业总部设置一中心服务器(以下称CenterServer) 和一文件服务器(以下称RCAFileServer),当然也可以只i殳置CenterServer, 由其实现RCAFileServer的功能。在各分公司分别设置一分支服务器(以下称 RTXServer( Real Time eXpert Server, —种具有实时处理能力的专业级服务器), 在RTXServer内部可设置与实现CenterServer通信的功能模块以及与所在分公 司内部的即时通信客户端(Clint)通信的功能才莫块,如RCAServer (RTX Corporation Assembly Server)禾口 ProxyServer。上述系统中,各RTXServer通过 网络或专线等方式连接在CenterServer上,各个分公司内部的即时通信客户端 通过局域网络连接到各自分公司的RTXServer上。上述系统架构中, CenterServer既可以设置在集群企业总部所在地,也可以设置在其他位置,如 某一分公司所在地,只要该CenterServer与各分公司的RTXServer是通过上述 网络连接方式进行连接。其中
CenterServer主要负责各个分公司应用的接入并转发分公司之间的网络 包,CenterServer不需要关注RCAServer之间网络包的具体细节,只关注需要 转发到哪个分公司的RCAServer。如果转发的是即时消息(IM)命令,而且对 方分公司的用户不在线,则需要保存离线消息;
RCAServer主要负责本分公司与CenterServer的连接,在CenterServer与 RTXServer之间搭建一条通信的桥梁,处理分公司之间的数据收发;
RCAFileServer是部署在CenterServer上的文件服务器,整体架构与现有的 RTXServer中的FileServer几乎完全一致,主要负责企业之间的文件存储,基 本功能类似于现有RTXServer体系中的文件服务器;
ProxyServer是部署在分公司内部的代理服务器,与集群服务完全独立,用 于中转客户端的连接请求和透传数据,不处理具体逻辑;
RTXServer是与RCAServer部署在同一台物理设备上的企业集群管理器 (下面简称管理器),主要配置本分公司对外开放级别和用户列表。为了增加 实用性,比如通过RCAServer获取到当前集群系统内的所有的分公司的用户列 表和在线状态,同时需要跟RCAServer之间通过网络来激发配置改变;
Client中包括RCA功能模块,用于获取相关权限信息以及配置信息,同时 处理外部的IM消息。RCA功能模块可与本分7>司的RCAServer建立TCP的 长连接,用于处理用户查询外部好友(即其他分公司的用户)、搜索外部好友、 查询用户状态信息。
当集群企业各分公司的客户端之间进行即时通信时,通过CenterServer中 转数据;而同一个分公司内部的客户端之间进行即时通信时,通过该分公司的 RTXServer进行数据中转。
下面对通过上述系统实现即时通信的过程进行详细描述。
参见图2,为本发明实施例中即时通信过程所涉及到的主要流程的时序图, 这些过程包括RCAServer登录CenterServer的流程、登录后的用户信息同步流 程、Client获取用户信息的流程,以及Client之间进行即时通信的流程。图中 以分公司A和分公司B为例,描述了分公司A中的Client与分公司B中的Client 进行即时通信的过程。其中ClientA、 RTXServerA、 RCAServer A属于分公司 A, ClientB、 RTXServerB、 RCAServerB属于分公司B,则具体过程包括
步骤201~202、 RCAServer A启动后,与RTXServer A进行注册相关信息 的交互,以进行初始化操作。
该步骤中,RCAServer A向RTXServer A中的ConnServer (即RTXServer 中负责连接的服务才莫块)发送注册应用信息,以向RTXServerA注册需要关注 的命令区间(包括RCA的消息类型),还连接到RTXServerA中的GroupServer (即RTXServer中管理用户组的服务模块)以获取需要关注的该分公司的用户 状态信息(如用户是否登录到RTXServer),以便将用户在线/离线状态呈现给 用户使用户能从中选择其他在线用户以进行即时通信。在初始化过程中,
RCAServer A还可以通过RTXServer A获取分公司A对其他分公司开放的用户 列表的版本号,并将其与从本地读取的用户列表版本号进行比较,若不同则更 新本地用户列表的版本号,以便后续进行用户信息的同步与更新。
步骤203、 RCAServer A根据预先设置的配置信息,如CenterServer的IP 地址,向CenterServer发送企业登录请求。
步骤204、 CenterServer根据配置信息,如总机号码、连接密码、企业名称、 公有密钥等处理RCAServer A的登录请求,并在处理后向其返回登录成功的结 果。其中,返回登录成功结果的步骤可选,在图中以虚线表示。
RCAServer A成功登录到CenterServer后,还可进行用户信息的同步流程, 其时序如图2中的步骤205~209所示
步骤205 ~ 206、 RCAServer A向CenterServer发送请求获取其他分公司的 用户列表(如其他分公司对分公司A开放的部门列表信息及各个部门的用户列 表信息)的同步请求消息,该过程中,可针对不同的分公司分别发送同步请求 消息,CenterServer将该请求消息转发至已经登录的其他分公司的RCAServer, 如RCAServer B。
步骤207 ~ 208、 RCAServer B根据该同步请求消息读取本地存储的能够向 分公司A开放的用户列表,并通过CenterServer发送到RCAServer A。
步骤209、 RCAServer A根据接收到的用户列表更新本地存储的分公司B 的用户列表。
RCAServer成功登录CenterServer后,该分^>司的Client可以登录到所在 的RCAServer。在Client登录RCAServer的过程中还包括获取用户列表信息的 过程,以Client A登录RCAServer A为例,该过程包括
步骤210、 ClientA向RCAServerA发送获取用户列表的请求消息。
步骤211、 RCAServerA接收到该请求消息后,获取本地存储的用户列表, 其中包括本分公司的用户列表,还包括其他分公司对其开放的用户列表。
步骤212、 RCAServer A将获取到的用户列表信息发送至Client A, Client A
更新本地的用户列表,还可以展示给用户以便其从中选择其他客户端进行即时 通信。
各分公司的Client登录到各自分公司的RCAServer后,可以与其他分公司 的Client进行即时通信。以Client A与Client B进行即时通信为例,包括以下 步骤
步骤213、 ClientA从本地的用户列表中选择ClientB,并发送IM消息。
步骤214、 RCAServerA接收该IM消息,并当判断该IM消息的接收端为 其他分公司的Client后将其转发至CenterServer。该步骤中,RCAServer A可根 据其上预先配置的该分公司内部各Client的标识或地址等信息来判断IM消息 的接收端是否为分^^司内部的Client;也可以才艮据IM消息中的组标识(即分 公司标识)来判断。
步骤215、 CenterServer判断该IM消息的接收端为分公司B中的Client, 并将该IM消息转发至RCAServer B。该步骤中,RCAServer A可根据其上预 先配置的各分公司内部各Client的标识或地址等信息来判断IM消息的接收端 所归属的分公司;也可以才艮据IM消息中的组标识(即分^^司标识)来判断。
步骤216、 RCAServer B接收到该IM消息后向Client B发送该IM消息。 RCAServer B发送该IM消息后还可通过CenterServer、 RCAServer A向Client A 返回发送结果信息。
各分公司的Client登录到各自分公司的RCAServer后,可以与各自分公司 内部的Client进行即时通信。在该过程中,IM消息发送方的Client选择所在 分公司的Client后向其发送IM消息,该IM消息发送到该分公司的RCAServer 后,RCAServer判断该IM消息的接收方也属于该分公司,则将该IM消息发 送到该分公司的IM消息接收方Client。
在图2所示的RCAServer A登录CenterServer的流程(如步骤201 ~ 204 ) 中,为提高安全性,RCAServer A与CenterServer之间交互的数据可进行加密/ 解密的验证,CenterServer还可对RCAServer A进行身份验证。在本发明的另
一实施例中,数据加密/解密验证以及身份验证的时序图可如图3所示,包括 步骤301、 RCAServer A向CenterServer发送登录请求消息时,将总机号
码BUin以及RCAServer A随机生成的临时密钥SessKeyTmp —起采用公有密
钥进行加密,携带于登录请求消息。
步骤302-303、 CenterServer接收到该登录请求消息后,使用私有密钥解
密验证,并生成后续与RCAServer A通信所用的密钥SessionKey,并将其返回
给RCAServer A。
步骤304、 RCAServer A使用之前生成的临时密钥SessKeyTmp解密 CenterServer返回的消息,获取其中的密钥SessionKey。然后RCAServer A使 用密钥SessionKey对登录时的企业总机号码以及连接密码进行加密,并发送给
步骤305、 CenterServer对接收到的数据进行加密,并对企业总机号码以及 连接密码进行验证。
在图3所示的流程中,在包含公有密钥文件里,还包含CenterServer的ID 以及名称等标识信息,该文件经过签名,可以防止被恶意篡改。标识信息经过 Hash处理后,采用CenterServer的私有密钥进行力。密,然后进行Base64编码。
在图2所示的用户信息同步流程(如步骤205~209)中,可根据用户信息 的版本号进4亍同步处理。在本发明的另一实施例中,该同步流程可如图4所示, 包括
步骤401 ~ 402、 RCAServer A通过向CenterServer发送同步请求,将保存 在本地的本分公司对其他分公司(如分公司B)开放的用户列表版本号 (VerLocal)以及其他分公司(如企业分公司B)对分公司A开放的用户列表 版本号(VerRemote)携带于同步请求消息发送到CenterServer, CenterServer 将版本号转发至RCAServer B。
步骤403、 RCAServer B接收到用户列表版本号后,将其中的版本号与本 地存储的相应版本号进行比较,如果VerLocal与本地保存的分公司A对分公
司B开放的用户列表版本号不一致,则需要请求分公司A将其为分公司B开 放的用户列表发送过来;如果VerRemote与本地保存的分7>司B对分公司A 开放的用户列表版本号不一致,则需要将本地保存的用户列表发送给 RCAServerA。
步骤404 ~ 405、 RCAServer B根据判断结果,通过CenterServer向 RCAServer A返回响应消息。
步骤406、 RCAServer A根据接收到的用户列表的版本号判断是否需要更
新本地的用户列表,由于用户列表中的每个用户信息也具有各自的版本号,因
此RCAServer A中保存的分公司B对分公司A开》文的用户列表中某些用户信
息的版本号低于接收到的相应用户信息的版本号,则可只需更新这些用户信 自
步骤407 ~ 409、如果RCAServer B请求获取RCAServer A的用户列表, 则RCAServer A将其对分公司B开放的用户列表通过CenterServer发送给 RCAServerB,以便其更新相应的用户列表。
步骤410-411、 RCAServer B通过CenterServer向RCAServer A返回响应消息。
通过上述用户信息的同步流程,可以〗吏刚登录到CenterServer的 RCAServer与其他已经登录的RCAServer相互之间保持一致的用户列表,从而 为后续用户通过用户列表选择其他用户进行即时通信创造条件。上述流程可在 RCAServer A注册到CenterServer后进行,也可在注册成功后,根据设定的时 间或周期,或根据管理员输入的同步指令进行。RCAServer还可以通过定时或 周期检测本地保存的对其他分公司开放的用户列表信息是否改变(增添用户或 部门,或者删除用户或部门),若改变,则更改该用户列表的版本号,并将更 改后的用户列表及其版本号发送给其他分公司的RCAServer,以使其他分公司 的RCAServer更新相应的用户列表。
RCAServer登录到CenterServer后,该RCAServer还可以从RTXServer中
的GroupServer中获取本分公司对外开放的用户的状态并将其保存在本地,在 后续过程中,也需要根据用户状态的变化更新本地保存的用户状态信息。本发 明另一实施例中获取以及更新用户状态信息的过程可如图5所示,包括
步骤501~502、 ClientA的用户状态(如上线、离线、下线等)改变时, RTXServer可获知该用户状态的改变,并将其通知到RCAServer A。
步骤504、 RCAServer A通过CenterServer将用户状态变化的信息通知给 RCAServer B, RCAServer B更新本地保存的分公司A的用户列表中的用户状态。
步骤505 ~ 506、 RCAServer B通过CenterServer向RCAServer A返回更新 结果,如果RCAServer B中保存的分^^司B对企业分公司A开力文的用户列表 中的用户状态也发生变化,则还可以将用户状态变化信息发送给RCAServer A 进行更新。
上述流程也可以根据设定的时间或周期,或根据管理员输入的指令进行, 还可以由用户状态的改变触发进行。通过该流程,各RCAServer可及时获取当 前各分公司的用户状态,从而为后续各分^^司之间的用户进行即时通信创造条件。
Client成功登录RCAServer后,需要从其本地的RCAServer获取本分公司 以及其他分公司的用户信息,包括用户列表及其中的用户状态等。Client还可 定时(如每3分钟)从其本地的RCAServer获取用户信息,或者在打开会话窗 口时,从本地的RCAServer获取对应的会话连接的用户信息。
在本发明的另一实施例中,用户列表可以组织架构的方式呈现,图6给出 了一种组织架构的示意图,该组织架构包括几层列表,第一层列表是各分公司 的名称,当点击打开其中任一分公司时,连接到该分公司对应的第二层列表, 该第二层列表中列出的是该分公司中的部门信息,当点击打开其中的一个部门 时,连接到该部门对应的第三层列表,该第三层列出的是该部门中的用户信息。
对于好友企业的组织架构,可由RCAServer生成响应的Group.xml文件, 通过InfoServerAPI上传到InfoServer (信息服务器, 一种^是供信息服务的网络 服务器)的相应目录进行保存,客户端可通过InfoServer下载组织架构。下载 部门列表的更新过程,类似于现有的组织架构更新过程,但是不通过现有的应 用协议通道,而是直接到RCAServer来获取。
Client通过组织结构获取用户信息以及更新本地保存的组织结构或用户信 息的过程,可如图7所示,包括
当Client登录到RCAServer后,获取组织架构信息的过程如步骤701 ~ 711 所示
步骤701 ~ 702、 Client向RTXServer发送获取整个企业组织架构的请求消 息,RTXServer将该请求消息转发到该Client所在分公司的RCAServer。该步 骤中,RTXServer可首先根据该Client的配置信息判断其访问权限,并在该 Client具备访问组织架构的权限时,将其请求消息发送给RCAServer。
步骤703 - 705、 RCAServer读取本地保存的组织架构的版本号并通过 RTXServer发送给Client。
步骤706 ~ 708、 Client根据该组织架构的版本号与本地保存的版本号进行 比较,如果不一致,则通过RTXServer向RCAServer发送请求下载组织架构信 息的请求。
步骤709~711、 RCAServer根据该请求读取本地的组织架构信息,并将其 通过RTXServer发送给Client。
当用户选择组织架构中的某个分公司时,Client获取该分公司的组织架构 的过程如步骤712 ~ 716所示
步骤712、 Client通过RTXServer从RCAServer获取所选择的分公司的组 织架构的版本号,并与本地保存的相应版本号进行比较。
步骤713 ~ 716、当比较结果不一致时,通过RTXServer向InfoServer获取 该分公司的企业架构信息并保存。
当用户选择分公司中的某个部门时,Client获取该该部门中的用户信息的 过程如步骤717 ~ 721所示
步骤717、 Client通过RTXServer从RCAServer获取所选择的部门的版本 号,并与本地保存的相应版本号进行比较。
步骤718 ~ 721、当比较结果不一致时,通过RTXServer向RCAServer获 取该部门的用户列表信息并保存。
由于集群企业用户情况可能差别比较大,为了在一套组织架构下满足更多 的应用场景,本发明的实施例中,可由CenterServer下发配置信息到各 RCAServer,各RCAServer下发一些配置信息到Client。这些配置信息可以包 括客户端是否配置自动下载所有分公司的用户列表、是否加载所有其他分7> 司的用户、RCAServer是否自动推送所有其他用户的状态变化等。
分公司与其他分公司之间的好友关系,可保存到一个公共的数据库。如果
本分公司的用户离线,其他分乂>司的用户添加该用户为好友,则这些添加好友 的信息也需要保存到该公共数据库中,客户端下次登录的时候可主动获取该公 共数据库。
本发明实施例中,各RCAServer为了与本地的RTXServer的数据库保持独 立,保持原有逻辑的稳定性,可将每个分公司的所有数据都保存在对应的一个 独立的数据库中,该独立的数据库包括本分公司的用户列表信息,还包括该分 公司对其他各个分公司开放的用户列表,以及其他各分公司对本分公司开放的 用户列表。
本发明实施例中,CenterServer主要负责各个分公司应用的接入和数据分 析以及转发,可保存有各个已经登录的分公司的用户列表以便实现消息转发, CenterServer能够实现的功能主要有
作为中转服务器中转各分公司之间的数据;
提供RSA和TEA的加解密支持;
可配置管理,即能够对外来的连接进行管理和限制;
可监控,即能够查询当前企业在线情况; 离线消息的存储和获取。
图8给出了 一种CenterServer的结构示意图,该CenterServer包括 接收模块81,用于接收第一分支服务器发送的消息; 转发模块82,用于将接收到的消息转发给第二分支服务器。 本发明实施例中,RCAServer是分公司内外沟通的桥梁,负责登录到 CenterServer,同时要处理分公司内部客户端的各种请求。RCAServer所包括的 功能有本地网络处理、数据存储、协议处理等。其中,网络包括连接到 CenterServer部分、作为服务器处理本分公司客户端连接的网络、与本地管理 器同步数据的网络;数据包括其他分公司的组织架构和用户资料、本地配置的 对各分公司开放的组织架构和用户信息、本地用户与其他分公司用户的好友关 系、本地和其他分公司的用户状态;协议处理包括与CenterServer之间的协议 处理、与Client之间的协议、与GroupServer之间的协议、与ConnServer之间 的应用协议、与LicenseServer之间获取License (许可)信息的协议、与管理 器之间的配置协议等。图9给出了一种RCAServer的功能架构示意图。 如图9给出了 一种RCAServer的结构示意图,该RCAServer包括 存储模块91,用于存储该分支服务器所辖用户的用户列表,以及其他分支 服务器所辖用户的用户列表;
请求模块92,用于发送获取其他分支服务器所辖用户的用户列表; 接收模块93,用于接收其他分支服务器发送的用户列表或该用户列表中用 户信息,并保存到所述存储模块91;
处理模块94,用于当通信客户端通过所述存储模块91存储的用户列表选 择其他客户端并向其发送即时消息时,接收所述即时消息,并判断所述即时消 息的接收方是否为该分支服务器所辖的即时通信客户端,若是,则将所述即时 消息发送给该接收方客户端;否则将所述即时消息发送到中心服务器。发送即 时消息时可通过发送^f莫块95进行发送。
进一步的,该发送模块95还可用于发送存储模块91中存储的所述分支服 务器所辖用户的用户列表或该列表中的用户信息。
本发明的上述实施例中,在集群企业内部部署中心服务器和RTX服务器, 并在RTX服务器中的RCA服务器中存储最新的本分公司的用户列表、其他分 公司对本分公司开放的用户列表,各RTX服务器通过中心服务器相互连接。 釆用本发明技术方案, 一方面,集群企业中的各分公司可以更方便的实现用户 信息共享;另一方面,各分公司内部的客户端之间进行即时通信时,只需要该 分公司本地的RXT服务器中转数据,而无需通过中心服务器中转数据,这样 降低了中心服务器和网络压力,并且也提高了集群企业中各分公司独立管理内 部客户端的能力。
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种共享用户信息的方法,其特征在于,预先设置中心服务器以及多个分支服务器,该方法包括第一分支服务器通过中心服务器向第二分支服务器请求获取用户列表;第二分支服务器根据该请求,将其所辖用户的第二用户列表通过中心服务器发送给第一分支服务器;第一分支服务器接收并保存第二用户列表。
2、 如权利要求1所述的方法,其特征在于,第一分支服务器向第二分支 服务器请求获取用户列表,包括第一分支服务器将其保存的第二分支服务器所辖用户的用户列表的版本 标识,通过中心服务器发送到第二分支服务器;第二分支服务器将该版本标识与其所辖用户的第二用户列表的版本标识 进行比较,当两者不一致时,通过中心服务器将第二用户列表发送给第一分支 服务器。
3、 如权利要求1所述的方法,其特征在于,第一分支服务器向第二分支 服务器请求获取用户列表时,还将其所辖用户的第一用户列表的版本标识通过 中心服务器发送给第二分支服务器;第二分支服务器还将该版本标识与其保存的第一分支服务器所辖用户的 用户列表进行比较,并当两者不一致时,通过中心服务器请求第一分支服务器 发送用户列表;第一分支服务器根据第二分支服务器的所述请求将第一用户列表通过中 心服务器发送给第二分支服务器。
4、 如权利要求l所述的方法,其特征在于,还包括 第一分支服务器将其所辖用户的第一用户列表中发生变化的用户状态信息,通过中心服务器发送给第二分支服务器;或/和接收第二分支服务器通过中心服务器发送过来的、该第二分支服务器所辖 用户的第二用户列表中发生变化的用户状态信息并保存。
5、 如权利要求1所述的方法,其特征在于,第一分支服务器向第二分支 服务器请求获取用户列表,包括当第 一分支服务器启动时,或用户选择查看第二分支服务器所辖用户列表 时,向第二分支服务器请求获取用户列表;或者,第一分支服务器根据设定的时间或周期,向第二分支服务器请求获 取用户列表。
6、 一种分布式即时通信的方法,其特征在于,预先设置中心服务器以及 多个分支服务器,当即时通信客户端通过第 一分支服务器保存的用户列表选择 其他即时客户端并向其发送即时消息时,该方法包括第 一分支服务器接收所述即时通信客户端发送的即时消息;当判断所述即时消息的接收方为该分支^^务器所辖的即时通信客户端时,将所述即时消息发送给该接收方客户端;当判断所述即时消息的接收方为第二分支服务器所辖的即时通信客户端时,将所述即时消息通过中心服务器转发到第二分支服务器,第二分支服务器将所述即时消息发送到该消息的接j]t^户端。
7、 如权利要求6所述的方法,其特征在于,第一分支服务器接收即时通 信客户端发送的即时消息之前,还包括获取第二分支服务器所辖用户的第二用 户列表并保存的步骤;所述通信客户端根据第二用户列表选择即时消息的接收方并向其发送所 述即时消息。
8、 如权利要求7所述的方法,其特征在于,第一分支服务器获取到第二 用户列表后,还包括从中心服务器接收第二分支服务器发送过来的第二用户列表中发生变化 的用户状态信息,并4艮据接收到的用户状态信息更新该第一分支服务器保存的 第二用户列表; 或者,根据设定时间或周期,通过中心服务器向第二分支服务器获取第二 用户列表或第二用户列表中发生变化的用户状态信息,并更新该第 一分支服务 器保存的第二用户列表。
9、 一种分布式即时通信系统,其特征在于,包括中心服务器以及一个 分支服务器,其中分支服务器,用于发送获取其他分支服务器所辖用户的用户列表的请求, 接收其他分支服务器发送的用户列表并保存;当即时通信客户端通过该分支服 务器保存的用户列表选择其他客户端并向其发送即时消息时,接收并判断该即 时消息的接收方是否是该分支服务器所辖的客户端,若是,则将该即时消息发 送到接收方客户端,否则将该即时消息发送给中心服务器;以及,接收中心服 务器转发的即时消息并发送到该即时消息的接收方客户端;中心服务器,用于将所述获取其他分支服务器所辖用户的用户列表的请求 转发给相应的分支服务器,将相应分支服务器发送的用户列表转发给发出给所 述分支服务器;以及,将第一分支服务器发送的所述即时消息转发给第二分支 服务器。
10、 如权利要求9所述的系统,其特征在于,所述分支服务器中的第一分 支服务器进一步用于,将其保存的第二分支服务器所辖用户的第二用户列表的 版本标识发送给中心服务器;所述第二分支服务器进一步用于,将所述版本标识与其所辖用户的第二用 户列表的版本标识进行比较,当两者不一致时,将其所辖用户的第二用户列表 发送给中心服务器;所述中心服务器进一步用于,将第一分支服务器发送的版本标识转发给第 二分支服务器;以及,将第二分支服务器发送的第二用户列表转发给第一分支 服务器。
11、 如权利要求9所述的系统,其特征在于,所述分支服务器中的第一分 支服务器进一步用于,在向第二分支服务器请求获取用户列表时,还发送该第 一分支服务器所辖用户的第一用户列表的版本标识;以及,根据第二分支服务 器的请求发送第一用户列表;所述第二分支服务器进一步用于,将所述版本标识与其保存的第一分支服 务器所辖用户的用户列表进行比较,并当两者不一致时,请求第一分支服务器 发送用户列表;所述中心服务器进一步用于,将第一分支服务器发送的版本标识转发给第 二分支服务器;以及,将第一分支服务器发送的第一用户列表发送给第二分支 服务器。
12、 如权利要求10或11所述的系统,其特征在于,所述第一分支服务器 进一步用于,发送其所辖用户的第一用户列表中发生变化的用户状态信息;或 /和,接收第二分支服务器发送的该第二分支服务器所辖用户的第二用户列表中 发生变化的用户状态信息并保存;所述中心服务器进一步用于,将第一分支服务器发送的用户状态信息转发 给第二分支服务器,或/和,将第二分支服务器发送的用户状态信息转发给第一分支服务器。
13、 一种分布式即时通信系统中的分支服务器,其特征在于,包括 存储模块,用于存储该分支服务器所辖用户的用户列表,以及其他分支服务器所辖用户的用户列表;请求模块,用于发送获取其他分支服务器所辖用户的用户列表;接收模块, 信息,并保存到所述存储模块;处理模块,用于当通信客户端通过所述存储模块存储的用户列表选择其他 客户端并向其发送即时消息时,接收所述即时消息,并判断所述即时消息的接 收方是否为该分支服务器所辖的即时通信客户端,若是,则将所述即时消息发 送给该接收方客户端;否则将所述即时消息发送到中心服务器。
全文摘要
本发明公开一种共享用户信息、分布式即时通信的方法及其系统和装置,以解决现有技术中企业内部通过一台服务器管理所有通信客户端所导致的管理灵活性差以及服务器管理负荷较重的问题以及处理所有即时通信客户端之间的即时通信所导致的服务器和网络压力大、通信性能差的问题。共享用户信息的方法包括步骤第一分支服务器通过中心服务器向第二分支服务器请求获取用户列表;第二分支服务器根据该请求,将其所辖用户的第二用户列表通过中心服务器发送给第一分支服务器;第一分支服务器接收并保存第二用户列表。采用本发明技术方案,使得企业服务器管理通信客户端更灵活、负荷轻;服务器处理客户端之间的即时通信网络压力小、通信质量好。
文档编号H04L12/58GK101394374SQ20081022626
公开日2009年3月25日 申请日期2008年11月11日 优先权日2008年11月11日
发明者林坚华 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1