喧喧技术架构实现方案
- 2019-04-01 09:24:02
- 薛才杰
- 16734
- 最后编辑:苏萌 于 2025-04-28 10:06:26
- 分享链接
本篇目录
一、喧喧技术实现目标
喧喧即时通信解决方案目标:- 多平台支持:服务器支持任意系统平台部署,客户端支持在任意平台上使用;
- 交互体验:实现无延迟的聊天体验;
- 安全性:保证通信安全性,禁止第三方截获消息;
- 性能:支持大量用户同时在线使用;
- 可扩展性:采用通用技术,方便进行二次开发;
- 集成:易于与已有系统进行集成。
二、喧喧技术实现方案
喧喧即时通信解决方案包含三个部分:
- 后端处理服务器(XXB):提供聊天数据存储以及供客户端使用的接口,以及喧喧服务器管理界面;
- 消息中转服务器(XXD):作为中间守护服务器,提供文件上传下载管理、协调客户端与后端服务器通信;
- 客户端(XXC):提供最终用户使用的交互界面。
客户端(XXC)通过 Socket 连接到 XXD 服务器;XXD 服务器负责管理所有已连接的客户端,并且随时将客户端相关信息通过 HTTP 协议汇报给后端处理服务器(XXB)。
客户端 (XXC)并不直接与后端处理服务器(XXB)通信,而且将消息发送给 XXD 服务器,XXD 服务器接收到客户端消息后立即将消息发送给后端处理服务器(XXB)。
后端处理服务器(XXB)如果有消息要推送给客户端(XXC)需要先发送给 XXD 服务器,然后 XXD 服务器将后端处理服务器(XXB)的消息再推送给客户端(XXC)。
在以上三方直接存在 2 种通信协议:
- Socket:客户端(XXC)与 XXD 服务器直接使用 Socket 协议连接(文件上传下载除外),可以实现实时通信,将用户聊天过程中的延迟降至最低;
- HTTP:XXD 服务器与后端处理服务器(XXB)通过 HTTP 协议通信。HTTP 协议具有广泛的支持,并且使用简单,这样用户更容易将喧喧集成到自己的系统中。
通常情况下喧喧客户端(XXC)、后端处理服务器(XXB)和消息中转服务器(XXD)的关系如下:
三、喧喧服务端和客户端的技术实现
3.1 后端处理服务器的实现
后端处理服务器(XXB)采用 php + mysql 开发,使用 ZentaoPHP 作为开发框架,非常方便的进行二次开发。3.2消息中转服务器的实现
消息中转服务器( XXD )采用 Go 语言实现。Go 语言具备高性能、支持高并发、易于学习使用,非常适合来开发中间守护服务器。消息中转服务器( XXD )使用到了 go-sqlite3 来实现服务器缓存功能。
3.3 客户端的实现
客户端(XXC)推荐采用 HTML/CSS/JS 实现,目前官方桌面客户端基于 Electron 开发。
联系我们
社群交流
部署半天还是不能访问,也不知道怎么才算是正常,果断放弃了