CloudTalk服务端编译流水账(下篇)
部署篇
gitee新版本
将 cloudtalk-server-3.0.1.tar.gz
解压
1 | # 进入上一层目录 |
老版本
将 im-server-2.0.3.tar.gz
解压
1 | # 进入上一层目录 |
运行 sync_lib_for_zip.sh
进入 cloudtalk-server-3.0.1/
或者 im-server-2.0.3
目录,运行 sync_lib_for_zip.sh
,他的作用是将 lib 分发到每个服务端目录里面。该脚本只需运行一次
1 | # 进入目录 |
导入 sql 文件
方式1
在 BT 面板中,数据库
–> 添加数据库
从 从本地上传
源代码目录 cloudtalk/database
目录中的 newim.sql
文件
开始上传
再 导入
成功后会提示 数据库导入成功
方式2
也可以在在 phpMyAdmin
中新建
新建数据库 newim
选择 导入
,上传 database
目录下的 newim.sql
文件
导入成功
获取数据库 root 密码
从服务器获取
后能同步到 newim
库
点 root密码
,会弹出密码
也可以用 newim
的用户和它的密码
编辑 conf 文件
在启动服务之前,需要先配置 config
文件
ct_msg_server
的配置文件ct_msgserver.conf
- 因为打算在内网测试,所以
IpAddr1
和IpAddr1
填的是局域网 IP - 取消了
RouterServerIP2
和RouterServerPort2
的注释,也就是删除了前面的#
号
ct_route_serve
的配置文件ct_routeserve.conf
将 ListenMsgPort=8200
改为了 ListenMsgPort=8200;8201
ct_http_msg_server
的配置文件ct_httpmsgserver.conf
修改了 RouteServerPort2
,从 8200
改为了 8201
ct_file_server
的配置文件ct_fileserver.conf
没做任何改动
ct_push_server
的配置文件ct_pushserver.conf
没做任何改动
ct_msfs
的配置文件ct_msfs
没做任何改动
ct_db_proxy_server
的配置文件ct_dbproxyserver.conf
这个文件主要是操作数据库和缓存,修改了
ThreadNum
,从48
改为了2
,按注释为 CPU 核的 2 倍;teamtalk_master_password
,从123456
改为了前面获取到的root
或者newim
的密码;teamtalk_slave_password
,从123456
改为了前面获取到的root
或者newim
的密码;
数据库用户建议不要使用
root
,用newim
就行 ;
运行 restart.sh
restart.sh
是运行脚本,是运行服务端的。总共有:
ct_db_proxy_server|ct_msg_server|ct_route_server|ct_http_msg_server|ct_file_server|ct_push_server|ct_msfs 7 个服务端。
接下来依次启动 7 个服务
1 | # 最先启动 ct_db_proxy_server |
老版没有
ct_
前缀,例如:新版为ct_db_proxy_server
,而老版本是db_proxy_server
1 | # 最先启动 db_proxy_server |
ct_db_proxy_server
是启动数据库操作的服务端,运行完后,到ct_db_proxy_server
目录下面的 Log 目录下面看日志,看有没有启动成功。如果没有报错信息,应该就可以
1 | # 启动 ct_route_server |
1 | # 启动 ct_file_server |
1 | # 启动 ct_msfs |
1 | # 启动 ct_push_server |
日志里显示错误,不影响在内网的运行
1 | # 启动 ct_msg_server |
1 | # 启动 ct_http_msg_server |
编译篇(API篇)
修改 application.properties
修改 cloudtalk/business-api/src/main/resources
目录下的 application.properties
文件,其中
spring.datasource.password
从123
改为用户newim
的密码;cloudtalk.files.msfsprior
从http://imapi.b56.cn:9701/
改为了http://192.168.0.114:8700/
cloudtalk.files.msfspriorbackup
从http://imapi.b56.cn:9701/
改为了http://192.168.0.114:8701/
cloudtalk.api.url
从http://im.b56.cn:9400/api/sendmsg
改为了http://192.168.0.114:8400/api/sendmsg
微信支付暂时用不上,所以
cloudtalk.weixin.notifyUrl
改不改无所谓;
application-qa.properties
和application-local.properties
等只有老版本中才有,因为官方文档中描述HttpMsgServerPort 是 http_msg_server 的 websocket 服务监听端口
,所以将HttpMsgServerPort
全部从9900
改为8400
;
编译 Java API
在 business-api
目录执行下面的命令
1 | # 进入到 business-api 目录 |
要等一会儿才能完成,编译成功后会看到 BUILD SUCCESS
提示
1 | # 进入到 target/distribution 目录 |
同目录下会生成 im.log
文件
运行篇
web 访问
在浏览器中输入http://虚拟机IP:8080
会显示
也不知道是否正常,论坛有人问过,作者说开发了新的管理后台,但还不知道怎么弄
Android 客户端
官网源代码编译的版本支持更换服务器地址,还是很方便的
只要修改
/cloudtalk/android/app/src/main/java/com/zhangwuji/im/UrlConstant.java
中的ACCESS_MSG_ADDRESS
即可
先注册 2 个用户,然后就可以互相聊天了。
网页 demo
网页 demo 在 gitee 上并没有
只要修改 demo.js
中的地址为自己的 IP 即可
登录成功后,可以发消息
对端收到后
其他
一键卸载BT
1 | # 切换到 root 用户 |
卸载成功
服务的端口
以下端口根据 conf
文件进行整理
服务 | 端口 | 备注 |
---|---|---|
msg_server | 8000 | |
http_msg_server | 8400 | http端口 |
http_msg_server | 9326 | websocket端口 |
db_proxy_server | 10600 | |
route_serve | 8200,8201 | |
push_server | 8500 | |
file_server | 8600,8601 | 8600 为 Client;8601 为MsgServer |
msfs | 8700 | |
mysql | 3306 | |
redis | 6379 | |
api | 8400,9326 | 同 http_msg_server 端口 |
msfsprior | 8700 | 同 file_server 端口 |
小结
可能是作者考虑要转商业化,因此客户端的代码只提供了 Android
的源代码,从编译出来的 app
看,和官方提供的 demo
存在较大的差异;
群里提供的 iOS
源代码日期上看还是 2019
年的;
Web
版本是基于 LayIM
开发的,而 LayIM
并不是开源产品,所以需要先购买 LayIM
的授权;
虽然看到有人问,但是 Windows
和 Mac
的版本目前没见过;
所以如果你确定 CloudTalk
符合你的需求,建议联系作者做定制开发吧。
参考文档
cloudtalk: 源代码
地址:https://gitee.com/pwsns/cloudtalk【新提醒】CloudTalk服务端源码编译方法(简版) - 技术文档 - CloudTalk支持计划 - Powered by Discuz!
地址:https://b56.cn/thread-6-1-1.html