这一节主要参考TeamTalk官方文档。
简介:
TeamTalk是一套开源的企业办公即时通讯软件,作为整套系统的组成部分之一,TTServer为TeamTalk 客户端提供用户登录,消息转发及存储等基础服务。
TTServer主要包含了以下几种服务器:
- LoginServer (C++): 登录服务器,分配一个负载小的MsgServer给客户端使用
- MsgServer (C++): 消息服务器,提供客户端大部分信令处理功能,包括私人聊天、群组聊天等
- RouteServer (C++): 路由服务器,为登录在不同MsgServer的用户提供消息转发功能
- FileServer (C++): 文件服务器,提供客户端之间得文件传输服务,支持在线以及离线文件传输
- MsfsServer (C++): 图片存储服务器,提供头像,图片传输中的图片存储服务
- DBProxy (JAVA): 数据库代理服务器,提供mysql以及redis的访问服务,屏蔽其他服务器与mysql与redis的直接交互
当前支持的功能点:
- 私人聊天
- 群组聊天
- 文件传输
- 多点登录
- 组织架构设置.
系统结构图
编译运行
1、下载代码
通过git来clone代码:
git clone https://github.com/mogutt/TTServer.git
clone 后会在当前目录生成一个文件夹TTServer
2、安装依赖
CentOS:
yum -y update
yum -y install libuuid-devel
Ubuntu:
apt-get install uuid-dev
3、编译
进入TTServer目录:
cd TTServer
目录结构如下:
run src
run 目录是用来执行的目录,src则是源码目录
进入src目录:
cd src
目录结构会如下:
base build.sh file_server login_server msfs msg_server route_server test_client tools
执行如下命令,给build.sh 赋可执行权限:
chmod +x build.sh
执行build.sh进行编译:
./build.sh version 0.0.1
其中0.0.1 是你想定义的版本号
如果想执行编译清理,请执行如下命令:
./build.sh clean
进入上一层目录:
cd ../
目录如下:
im-server-0.0.1.tar.gz run src
其中im-server-0.0.1.tar.gz就是我们刚刚编译完成生成的tar包,其中包含了各个服务端的可执行文件。
4、常见问题
4.1、找不到uuid.h
这是因为没有安装依赖,需要执行2过程;
4.2、找不到version.h
这是因为version.h文件是由build.sh运行的时候产生的,用于查看各个服务端编译的时间以及版本号
下篇预告
下一篇,我会分析C++服务端各个配置文件的含义。以及如何进行配置部署。