(TeamTalk服务端源码分析一)TeamTalk服务端部署

article/2025/8/30 2:55:43

TeamTalk服务端部署

在分析TeamTalk的各个服务器代码之前,我们先搭建一套服务端环境,结合之前的客户端,看一下一个IM聊天工具的基本功能。

一、部署环境
系统:centos7 X64位

二,部署步骤
1, 安装git gcc gcc-c++ mysql-devel unzip zip

yum install -y git gcc gcc-c++ mysql-devel unzip zip

2, 下载源码
进入/home目录,下载TeamTalk源码

Git clone https://github.com/mogujie/TeamTalk.git

3, 修改mariadb.sh
进入TeamTalk/server/src目录

cd TeamTalk/server/src

修改mariadb的源,修改如下:

MARIADB_DEVEL=MariaDB-10.0.37-centos73-x86_64-devel 
MARIADB_DEVEL_DOWNLOAD_PATH=https://mirrors.ustc.edu.cn/mariadb/yum/10.0/centos7-amd64/rpms/$MARIADB_DEVEL.rpm 
MARIADB_COMMON=MariaDB-10.0.37-centos73-x86_64-common 
MARIADB_COMMON_DOWNLOAD_PATH=https://mirrors.ustc.edu.cn/mariadb/yum/10.0/centos7-amd64/rpms/$MARIADB_COMMON.rpm 
MARIADB_COMPAT=MariaDB-10.0.37-centos73-x86_64-compat 
MARIADB_COMPAT_DOWNLOAD_PATH=https://mirrors.ustc.edu.cn/mariadb/yum/10.0/centos7-amd64/rpms/$MARIADB_COMPAT.rpm

4, 安装protobuf,hiredis,mariadb,log4cxx
先给sh脚本文件加上运行权限:

Chmod +x make_protobuf.sh
Chmod +x make_hiredis.sh
Chmod +x make_mariadb.sh
Chmod +x make_log4cxx.sh

再执行各个sh脚本,安装第三方库

./make_protobuf.sh
./make_hiredis.sh
./make_mariadb.sh
./make_log4cxx.sh

5, 执行build.sh
编译服务器代码,该脚本中也会有安装cmake, libuuid-devel, openssl-devel, curl-devel:

chmod +x build.sh
./build.sh version 1

6,文件压缩与拷贝
回到上层server目录,将im-server-1.tar.gz(build.sh脚本中打包的)拷贝到…/auto_setup/im_server/目录下

cp im-server-1.tar.gz ../auto_setup/im_server/

回到teamtalk根目录,重命名php文件夹,并压缩,拷贝:

cd ../
mv php tt
zip -q -r tt.zip tt
cp tt.zip ./auto_setup/im_web/

7,配置各个服务器的conf文件
进入auto_setup(cd …/auto_setup)目录,阅读当前目录下的INSTALL.md文件。我们选择按第二种方案来进行配置(公网环境),公网ip和内网ip分别为:

内网ip为:172.16.99.212
公网ip为118.31.108.152

进入im_server\conf目录,修改各个配置文件
(1)dbproxyserver.conf

vim dbproxyserver.conf

修改后的文件对比为:
在这里插入图片描述
(2)fileserver.conf

vim fileserver.conf

修改对比如下:
在这里插入图片描述(3)httpmsgserver.conf

vim httpmsgserver.conf

修改对比如下:
在这里插入图片描述(4)loginserver.conf

vim loginserver.conf

修改对比如下:
在这里插入图片描述(5)msfs.conf

vim msfs.conf

修改对比如下:
在这里插入图片描述(6)msgserver.conf

vim msgserver.conf

修改对比如下:
在这里插入图片描述(7)pushserver.conf

vim pushserver.conf

修改对比如下:
在这里插入图片描述(8)routeserver.conf

vim routeserver.conf

修改对比如下:
在这里插入图片描述
8,回到suto_setup目录,执行自动安装脚本setup.sh

cd ../../
chmod +x setup.sh
./setup.sh install

部署过程中会让输入数据库密码,此处需要输入12345,否则需要修改各个conf文件中对应的数据库密码。

9,查看TeamTalk的进程和端口

ps -ef

可以看到TeamTalk各个服务器的进程和对应开启的端口情况:
在这里插入图片描述10,在浏览器中输入公网ip,进行账号,群组管理端登录
在这里插入图片描述可以使用admin/admin进行登录,登录后进行用户及群组的新增,删除,修改等操作。
在这里插入图片描述


http://chatgpt.dhexx.cn/article/oh2XiiXT.shtml

相关文章

windows 10 Docker Desktop TeamTalk 安装笔记

目录 1、运行docker centos:7 版本系统 1.1进入 docker系统 1.2更新系统 1.3安装依赖软件 2、安装MySQL 2.1下载解压mysql 2.2解压mysql 2.3 编译安装mysql 2.3创建mysql用户 2.4创建my.cnf配置 2.5初始化 2.6其他配置 2.7启动mysql 2.8修改密码 2.9完成mysq…

VS2013打包teamtalk

1 2. 如果是第一次打包的话,需要下载Installshield,按需下载,第二次打开就是我这样了 3. 4.修改图中箭头的地方,其他看你需求修改 5.因为teamtalk要用到.net4.5 6.重点!!! 首先点击addfolde…

teamtalk mysql.h_TeamTalk安装测试

TeamTalk介绍 项目框架 TeamTalk是蘑菇街的开源项目,github维护的最后时间是2015但是仍然是一款值得学习的好项目,麻雀虽小五脏俱全,本项目涉及到多个平台、多种语言,简单关系如下图 服务端: CppServer:TTC…

TeamTalk消息协议

数据通讯格式封装协议 Protocol Buffer 常用序列化方案比较 参考 https://www.cnblogs.com/johnny666888/p/12841735.html Protocol Buffer Protocol Buffer还有一个非常重要的优点就是可以保证同一消息报文新旧版本之间的兼容性 protobuf协议核心思想 基于128bits的数…

TeamTalk源码分析(1)

一、TeamTalk服务器端以下部署程序: db_proxy_server、file_server、http_msg_server、login_server、msfs、msg_server、push_server、router_server 各个服务程序的作用描述如下: LoginServer (C): 负载均衡服务器,分配一个负载小的MsgSe…

把TeamTalk(即时通讯项目)中的线程池连接池拆出来单独测试。

研究过Teamtalk的伙伴会发现它的线程池和连接池与很多文件有关联, 这篇文章主要写,把它的线程池连接池拆出来需要用到哪些文件。 其实我本来只想测试它的连接池的,但发现连接池里套的有线程池,于是就一起拆出来了。 整个工程的树…

teamtalk原理

再贴一遍架构图 从图中可以看出,对外使用的是http连接,内部使用的是tcp长连接。 类的命名规则:xxxServConn是模块连别的模块,xxxConn是别的模块连它。 协议设计 teamtalk采用protobuf进行序列化 typedef struct {uint32_t le…

TeamTalk源码分析(一)—— TeamTalk介绍

TeamTalk是蘑菇街开源的一款企业内部用的即时通讯软件(Enterprise IM),类似腾讯的RTX。网上也有很多的介绍,我这里也有写几遍关于这款产品的“流水账”,一方面对自己这段时间的阅读其代码做个总结,尽量做个…

teamtalk实现即时通讯

即时通讯技术应用非常广泛,涉及教育、电商、金融、泛娱乐、生活服务、医疗健康、政企服务、游戏聊天、在线客服等等行业,不是大家认为仅仅是qq、微信那样。 即时通讯架构 先给张图 客户端与服务器端进行网络通信、收发消息连接层为客户端收发消息提供…

通识哈夫曼树及其应用,一起来构造属于自己的哈夫曼树

1.哈夫曼树的背景 哈夫曼(霍夫曼、赫夫曼)David Albert Huffman(August9,1925-October7,1999)。计算机科学的先驱,以他的哈夫曼编码闻名,在他的一生中,对于有限状态自动机,开关电路,异步过程和信…

哈佛结构冯·诺依曼结构

哈佛结构是一种将程序指令存储和 数据存储分开的存储器结构。哈佛结构是 一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。 冯诺依曼结构也…

微型计算机之哈佛架构是什么?

“哈佛体系结构”指的是什么? 微型计算机处理命令和数据,但是在很久以前的微型计算机中,用命令和数据共享了一条总线。在这种情况下,CPU在读取指令时使用总线,因此无法访问数据,并且在读取指令结束后访问数…

冯诺依曼结构、哈佛结构、改进型哈佛结构

冯诺依曼结构 冯诺依曼结构,又称为普林斯顿体系结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。取指令和取操作数都在同一总线上,通过分时复用的方式进行;缺点是在高速运行时,不能达到同时取指令和…

高级数据结构之赫夫曼树

思考两个问题 电报发送:二战的时候大家都知道那时候普遍会应用电报,如果让你来设计一个电报的发送编码你该如何设计呢? 电报加密后越短越好,发送快。破解难解码容易换加密树也要快可逆的 压缩算法:给你10000个字符&am…

ARM到底是冯诺依曼结构还是哈佛结构?

问题 嵌入式的学习中ARM处理器是主题,这些年产业界除了PC和服务器市场外,以手机、pad、家电控制等为代表的嵌入式领域都被ARM几乎垄断了。所以学习嵌入式处理器,其实等同于学习ARM。(当然了,近两年RISC-V架构横空出世在…

冯诺依曼结构和哈佛结构的区别

冯诺依曼结构和哈佛结构的区别 1. 冯诺依曼结构: 说明: 一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。 冯诺依曼的计算机必须…

冯诺依曼与哈佛结构的区别

cortex M3,M4主要采用哈弗结构 个人理解:最主要的区别在于程序空间和数据空间是否是一体的,冯诺依曼结构数据空间和地址空间是不分开的,而哈佛结构数据空间和地址空间是分开的 哈弗结构的优势:如果采用流水线设计&#xff0…

冯氏结构、哈佛结构、超级哈佛结构之间的异同

冯.诺伊曼结构 1945年,冯.诺伊曼首先提出了“存储程序”的概念和二进制原理,后来,人们把利用这种概念和原理设计的电子计算机系统统称为“冯.诺伊曼型结构”计算机。冯.诺伊曼结构的处理器使用同一个存储器,经由同一个总线传输…

哈佛结构

数字信号处理一般需要较大的运算量和较高的运算速度,为了提高数据吞吐量,在数字信号处理器中大多采用哈佛结构,如下图所示 图 哈佛结构 与冯.诺曼结构处理器比较,哈佛结构处理器有两个明显的特点: 使用两个独立的存储…

冯诺依曼体系结构、哈佛体系结构与改进型哈佛结构之间的区别

1、冯诺依曼结构  冯诺依曼结构又称作普林斯顿体系结构(Princetionarchitecture)。  1945年,冯诺依曼首先提出了“存储程序”的概念和二进制原理,后来,人们把利用这种概念和原理设计的电子计算机系统统称为“冯诺依…