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.isoCentOS-7-x86_64-Minimal-1708.isoCentOS-8.3.2011-x86_64-dvd1.isoCentOS-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