CloudTalk服务端编译流水账(上篇)
什么是 CloudTalk ?
CloudTalk 是专注于企业云布署的即时通讯系统,基于 teamtalk 开源项目二次开发,群集布置效果优化,业务模块与底层分离,能快速与自已现有系统对接。支持音、视频通话,支持 andoird 、ios、 mac 、 windows 、h5/小程序, Http API 是全网唯一支持全平台布署的互联网即时通讯系统。
系统架构图
官方提供的数据:
基于 CloudTalk 的单台服务器聊天室支持10W+ 用户在线(4核8G 服务器配置),理论单台100W以上空闲连接数,20W活动用户量 (4核16G配置)
前言
- 编译的只是服务端,客户端只验证了
Android
,其他的客户端我也没有; - 本文只是官方「CloudTalk服务端源码编译方法(简版)」的补充,记录了自己编译的过程,属于非官方的操作;
如果需咨询,或者需要源代码什么的,请去加 CloudTalk
的官方 QQ 群;
申明:本人只是 CloudTalk 的用户,和官方无任何关系;是否愿意付费加群,取决于您个人的需要,与本文作者无关;
安装篇
安装 VMware
虚拟机的安装很简单,如果你还不了解虚拟机,可以看看之前的文章: VMware安装MacOS Big Sur系统
注意:
- 当然这一步不是必须的,部署的话建议直接在物理机上安装
CentOS
;- 如果你用的
MacOS
,也可以用Parallels Desktop
来运行虚拟机;
安装 CentOS
版本的选择
这里踩的坑有点多,花了很多时间安装、测试,总共使用了 4 个版本的镜像,
CentOS-7-x86_64-DVD-1708.iso
CentOS-7-x86_64-Minimal-1708.iso
CentOS-8.3.2011-x86_64-dvd1.iso
CentOS-8.3.2011-x86_64-minimal.iso
虽然还有很多没弄明白,但是可以把确定性的先说一下,起码可以避免后面的人走重复的弯路。
- 按照官方要求的
需要 CentOS 7.0 以上版本。推荐使用纯净的新系统进行安装。
,理论上这 4 个镜像都应该满足,但是实际上使用CentOS 8
在编译的时候会出现
【结论】:只能选择大于 7
但是又小于 8
的 CentOS
版本;
- 只要
CentOS
安装图像界面,一装完宝塔面板,重启后图形界面就会无限崩溃
经反复测试,CentOS 7 安装宝塔,图像界面就会崩溃,论坛也有人反馈了同样的问题:【待反馈】centos 7 安装完宝塔之后重启之后图形界面崩溃)(https://www.bt.cn/bbs/thread-56991-1-1.html)
【结论】:只是编译无所谓,但是如果要运行,不建议 CentOS
安装带 GUI
;
- 不要图省事,将文件丢到
/root/
目录编译,每次编译到最后,都会出现make ct_http_msg_server failed
【结论】:可能是权限问题吧,在安装 CentOS
的时候,除了设定 root
的密码外,还创建了一个用户 swb
,我把要编译的代码丢在了 /home/用户名/
目录,也就是 /home/swb/
,能够正常编译。
下载 CentOS
下载地址 :https://www.centos.org/download/)
我最终使用的版本是
CentOS-7-x86_64-Minimal-1708.iso
,除了VMware
外,还在Parallels Desktop
中验证过,都顺利通过编译。
安装 CentOS
虚拟机中 CentOS 7 的安装,可以参考这篇文章:VMware 安装 Centos7 超详细过程(https://www.runoob.com/w3cnote/vmware-install-centos7.html),写的非常详细;
不管是用
VMware
还是Parallels Desktop
,记得把网络设置成桥接模式,这样后面客户端的调试会比较方便;
实体机安装其实和虚拟机中差不多,只是前面的引导方式不一样,iso
文件可以刻录到光驱里面,也可以做成 U 盘引导盘。具体参考这篇文章: 制作U盘启动盘,CentOS系统安装(https://segmentfault.com/a/1190000020105401)
安装宝塔面板
宝塔运维平台介绍:https://www.bt.cn
1 | # 如果不是用管理员登录的,要切换为管理员才有权限安装宝塔 |
部分图是在
GUI
模式下的终端里截取的,懒得再换;
如果你用 SSH 客户端
安装完成会有提示
账号、密码一定要保存好,保存好,保存好~
VM内的
1 | 外网面板地址: http://xxx.xxx.xxx.xxx:8888/7c0c531a |
PD内的
1 | 外网面板地址: http://xxx.xxx.xxx.xxx:8888/490b1953 |
这是我的,你要记住的是你自己的~
安装支持环境
浏览器中打开宝塔的内网地址
输入账号密码,协议拉到底部后勾选同意
安装 LNMP
安装成功
安装 redis
版本是6.2的
安装 java
选了 Java项目一键部署
安装 protobuf
1 | # 在 SSH 界面安装,据说一键脚本里已经内置,不安装也可以 |
安装 hiredis
1 | # 在 SSH 界面安装,下图是终端界面 |
安装 mysql_client
1 | # 在 SSH 界面安装,下图是终端界面 |
安装 log4cxx
1 | # 在 SSH 界面安装,下图是终端界面 |
编译篇(服务端)
下载源代码
代码下载地址:https://gitee.com/pwsns/cloudtalk
winscp
连接到 CentOS
,将下载的 pwsns-cloudtalk-master.zip
后上传到服务器
在安装
CentOS
的时候,除了root
外还建了一个用户swb
,所以把文件上传到/home/swb/
目录
编译服务
文件解压
1 | cd /home/swb/ |
进入 cloudtalk/server/src/
目录,在当前目录执行
gitee 新版本
1 | # 进入 install.sh 所在目录 |
编译的时间有点长,编译完成后会在 cloudtalk/server
目录中生成 cloudtalk-server-3.0.1.tar.gz
老版本
所谓老版本是在网上找到的一个
2.0.3
版本的,可以忽略;
1 | # 进入 install.sh 所在目录 |
执行
./make_mariadb.sh
可能会有错误,可以不管;
编译的时间有点长,编译完成后会在 cloudtalk/server
目录中生成 im-server-2.0.3.tar.gz
未完待续,下周一的内容包含 JAVA
端的编译及项目部署设置。
参考文档
cloudtalk: 源代码
地址:https://gitee.com/pwsns/cloudtalk【新提醒】CloudTalk服务端源码编译方法(简版) - 技术文档 - CloudTalk支持计划 - Powered by Discuz!
地址:https://b56.cn/thread-6-1-1.htmlVMware 安装 Centos7 超详细过程 | 菜鸟教程
地址:https://www.runoob.com/w3cnote/vmware-install-centos7.html