GWIM群聊天功能设计

lsx218 贡献于2014-10-15

作者 Tian  创建于2011-09-13 11:13:16   修改者  修改于2013-03-08 02:22:31字数940

文档摘要:1. 群功能定位 使用传统的GWIM聊天方式实现多人同时在线聊天时会遇到无法克服的消息转发效率问题。而在GWIM中引入群聊天机制可以有效提高多人聊天效率、方便群资料的管理,并且对既有的聊天功能不产生影响,从而避免在代码实现时于既有功能中引入额外的bug。
关键词:

GWIM群聊天功能设计 1. 群功能定位 使用传统的GWIM聊天方式实现多人同时在线聊天时会遇到无法克服的消息转发效率问题。而在GWIM中引入群聊天机制可以有效提高多人聊天效率、方便群资料的管理,并且对既有的聊天功能不产生影响,从而避免在代码实现时于既有功能中引入额外的bug。 群聊天功能将作为GWIM的一个独立模块来开发,其具有独立的客户端界面(整合到现有客户端UI中)、独立的接入服务器以及独立的状态维护机制(群资料将建设一个独立的数据库表)。 2. 群初版目标 第一版将实现群的基本功能,如群的创建、删除、修改,以及群成员的申请加入、申请退出、管理员加入成员和踢出成员等。另外,我们将实现一个待优化的消息转发机制来满足基本的聊天需求。 3. 群模块划分 整个群聊天功能将由客户端、群接入服务器以及群状态服务器组成。随着设计与实现的完善,后期我们还会加入负载均衡服务器、内存数据库服务器等功能以优化系统。 在实现群的相关功能时,将充分利用现有的工作流程来简化群接入服务器的实现。对于群创建、删除、资料修改等修改状态服务器数据库的行为将复用GWIM传统方式(称为A通道),而消息转发等对实时性要求较高的功能则由接入服务器实现(称为B通道)。 在群创建时,在状态服务器端即将此群的登陆地址绑定到某台接入服务器(由群号模接入服务器数量得到的余数作为该群登录的服务器id)。 4. 群协议制定 参见群消息报文规范.doc 5. 群服务器架构图 A通道: 负责群状态的获取、设置、修改等。登录时首先通过A通道的认证,并获取token用于登录群聊天接入服务器。 A通道 群聊天接入服务器1 状态服务器 普通聊天接入服务器 客户端 B通道 B通道: 负责群聊天消息、群通知的转发等。 群聊天接入服务器2 工作流程: 1. 登录 客户端通过A通道登录普通接入服务器后,获取群接入服务器ip:port,以及登录的token,之后登录B通道。 群接入服务器拿着客户端的token向状态服务器验证,通过则登录成功,否则失败。 2. 聊天与通知 群聊天和通知信息统一通过B通道群接入服务器转发给在线群成员,并保存历史消息。 3. 增删改群和成员的添加、删除 客户端通过A通道与状态服务器交互,操作数据库,从而实现群的增删改操作。增删改操作导致的群通知由状态服务器经由B通道通知到在线群成员。成员的添加、删除经由A通道通知到本人,并由B通道通知到其他在线成员。

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档