1 关于喧喧
1.1  关于喧喧聊天软件
1.2  喧喧功能特色
1.3  如何获得技术支持
1.4  喧喧技术架构实现方案
2 安装
2.1 安装后端服务(xxb、然之、禅道三选一即可)
2.1.1 使用 xxb 作为后台
2.1.1.1  Windows 一键安装包安装xxb
2.1.1.2  Linux 一键安装包安装xxb
2.1.1.3  源码包安装xxb(系统通用)
2.1.2  使用然之协同作为后台
2.1.3  使用禅道作为后台
2.2 安装XXD服务
2.2.1  Windows 安装xxd服务
2.2.2  Linux 安装xxd服务
2.3  防火墙开启喧喧端口
2.4 安装客户端
2.4.1  windows 系统安装客户端
2.4.2  MAC 系统安装客户端
2.4.3  linux 系统安装客户端
2.5  浏览器端安装
3 升级
3.1 升级后端服务
3.1.1  禅道升级
3.1.2  然之协同升级
3.1.3 xxb 升级
3.1.3.1  Windows 一键安装包升级xxb
3.1.3.2  Linux 一键安装包升级xxb
3.1.3.3  Mac 系统升级xxb
3.1.3.4  源码包升级xxb(系统通用)
3.2  升级XXD服务
3.3  自动升级喧喧客户端
3.4  手动升级喧喧客户端
3.5  升级浏览器端
4 后端服务器(xxb)的使用
4.1  xxb首页统计信息
4.2  服务器端的参数设置
4.3  客户端的版本更新
4.4  添加和维护用户和权限
4.5  添加和维护应用
5  用户账号及登录
6 聊天会话
6.1 会话菜单
6.1.1  最近聊天
6.1.2  讨论组
6.1.3  联系人
6.1.4  创建新会话及搜索
6.2 聊天窗口
6.2.1  会话聊天功能
6.2.2  会话管理
6.2.3  消息记录
7 扩展应用
7.1  文件管理
7.2  主题管理
7.3  扩展管理
8  个人设置

喧喧技术架构实现方案

2019-04-01 09:24:02
薛才杰
1084
最后编辑:薛才杰 于 2019-04-01 09:46:42

目标

喧喧即时通信解决方案目标有:
  • 多平台支持:服务器支持任意系统平台部署,客户端支持在任意平台上使用;
  • 交互体验:实现无延迟的聊天体验;
  • 安全性:保证通信安全性,禁止第三方截获消息;
  • 性能:支持大量用户同时在线使用;
  • 可扩展性:采用通用技术,方便进行二次开发;
  • 集成:易于与已有系统进行集成。

方案

喧喧即时通信解决方案包含三个部分:
  1. 客户端(xxc):提供最终用户使用的交互界面;
  2. 后端服务器(xxb):提供聊天数据存储以及供客户端使用的接口,以及喧喧服务器管理界面。
  3. XXD 服务器(xxd):作为中间守护服务器,提供文件上传下载管理、协调客户端与后端服务器通信。
客户端通过 Socket 连接到 XXD 服务器;XXD 服务器负责管理所有已连接的客户端,并且随时将客户端相关信息通过 HTTP 协议汇报给后端服务器;客户端并不直接与后端服务器通信,而且将消息发送给 XXD 服务器,XXD 服务器接收到客户端消息后立即将消息发送给后端服务器;后端服务器如果有消息要推送给客户端需要先发送给 XXD 服务器,然后 XXD 服务器将后端服务器的消息再推送给客户端。在以上三方直接存在 2 中通信协议:
  • Socket:客户端与 XXD 服务器直接使用 Socket 协议连接(文件上传下载除外),可以实现实时通信,将用户聊天过程中的延迟降至最低;
  • HTTP:XXD 服务器与后端服务器通过 HTTP 协议通信,HTTP 协议具有广泛的支持,并且使用简单,这样用户更容易将喧喧集成到自己的系统中。

通常情况下客户端、后端服务器和 XXD 服务器的关系如下:

一个 XXD 服务器还可以链接到多个后端服务器,这样可以实现集群部署:

技术实现

后端服务器实现

后端服务器采用 php + mysql 开发,使用 ZentaoPHP 作为开发框架,非常方便的进行二次开发。

XXD 服务器实现

XXD 服务器端采用 Go 语言实现。Go 语言具备高性能、支持高并发、易于学习使用,非常适合来开发中间守护服务器。
XXD 服务器使用到了 go-sqlite3 来实现服务器缓存功能。

客户端实现

客户端推荐采用 HTML/CSS/JS 实现,目前官方桌面客户端基于 Electron 开发。


发表评论
评论通过审核后显示。