喧喧官网 : https://xuan.im/index.html
架构
喧喧即时通信解决方案包含三个部分:
- 客户端(xxc):提供最终用户使用的交互界面;
- 后端服务器(xxb):提供聊天数据存储以及供客户端使用的接口,以及喧喧服务器管理界面。
- XXD 服务器(xxd):作为中间守护服务器,提供文件上传下载管理、协调客户端与后端服务器通信。
客户端通过 Socket 连接到 XXD 服务器;XXD 服务器负责管理所有已连接的客户端,并且随时将客户端相关信息通过 HTTP 协议汇报给后端服务器;客户端并不直接与后端服务器通信,而且将消息发送给 XXD 服务器,XXD 服务器接收到客户端消息后立即将消息发送给后端服务器;后端服务器如果有消息要推送给客户端需要先发送给 XXD 服务器,然后 XXD 服务器将后端服务器的消息再推送给客户端。在以上三方直接存在 2 中通信协议:
Socket:客户端与 XXD 服务器直接使用 Socket 协议连接(文件上传下载除外),可以实现实时通信,将用户聊天过程中的延迟降至最低;
HTTP:XXD 服务器与后端服务器通过 HTTP 协议通信,HTTP 协议具有广泛的支持,并且使用简单,这样用户更容易将喧喧集成到自己的系统中。
通常情况下客户端、后端服务器和 XXD 服务器的关系如下:
技术实现
后端服务器实现
后端服务器采用 php + mysql 开发,使用 ZentaoPHP 作为开发框架,非常方便的进行二次开发。
XXD 服务器实现
XXD 服务器端采用 Go 语言实现。Go 语言具备高性能、支持高并发、易于学习使用,非常适合来开发中间守护服务器。
XXD 服务器使用到了 go-sqlite3 来实现服务器缓存功能。
客户端实现
客户端推荐采用 HTML/CSS/JS 实现,目前官方桌面客户端基于 Electron 开发。
环境安装
从https://xuan.im/page/download.html 分别下载xxd代理服务器安装包 和后端业务服务器服务器安装包 xxb.2.5.6.zbox_64.tar.gz(当前最新)附图:
上传到liunx服务器上
解压
- 解压后端业务服务器服务器安装包
tar zxvf xxb.2.5.6.zbox_64.tar.gz -C /opt
注意一定是/opt目录
解压代理服务器安装包到当前目录,留后面用
tar zxvf xxb.2.5.6.liunx.x64.tar.gz
修改配置文件
修改配置文件 /opt/zbox/run/xxd/config/xxd.conf
[root@iZwz9938t1plpjxsy3riqdZ ~]# cat /opt/zbox/run/xxd/config/xxd.conf
[server]
ip=0.0.0.0 # 监听的IP地址,不要使用127.0.0.1。
commonPort=11443 # 登录和附件上传接口(http),确保防火墙开放此端口。
chatPort=11444 # 聊天消息通讯端口(websocket),确保防火墙开放此端口。
https=off # 是否启用Https(on|off)。使用Https可以保证消息全程加密。
uploadPath=files/ # 附件保存的目录。默认存放在xxd/files/。
uploadFileSize=32M # 上传文件的大小,以M为单位。
maxOnlineUser=0 # 在线用户上限,0为无限制。
logPath=log/ # 程序运行日志的保存路径。
certPath=cert/ # 证书的保存路径。
debug=0 # Debug级别,可设置0|1|2
[backend]
#
# xxd可以对接多个后台程序。每一个后台程序由入口文件 + 私钥组成。
# 客户端登录时如果没有指定后台程序,会默认登录到第一个后台程序。
#
#backend1=http://127.0.0.1/x.php,88888888888888888888888888888888
#backend2=http://192.168.1.3/xxb/x.php,88888888888888888888888888888888
backend2=http://120.78.166.56:8080/xxb/x.php,e42faa01a0a867a5ed3d2ad3e4cbd3b0 注意本机用backend1 外网用backend2,8080为启动端口
启动服务
Apache和Mysql常用命令
执行/opt/zbox/zbox start 命令开启Apache和Mysql。
执行/opt/zbox/zbox stop 命令停止Apache和Mysql。
执行/opt/zbox/zbox restart 命令重启Apache和Mysql。
可以使用/opt/zbox/zbox -h命令来获取关于zbox命令的帮助
其中 -ap参数 可以修改Apache的端口,-mp参数 可以修改Mysql的端口(比如:/opt/zbox/zbox -ap 8080)
访问
访问和登录喧喧
启动Apache和Mysql服务后,
浏览器直接访问 http://xxb服务器ip:apache端口 即可访问和登录。
访问http://120.78.166.56:8080/ 如图:
客户端登录
客户端下载地址:https://xuan.im/page/download.html
使用xuanxuan-browser 静态页面登录:附图
注:服务器为ip,不加端口
2桌面程序登录