我的teamtalk学习历程 -- (1)安装,编译及配置

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: 我的teamtalk学习历程 -- (1)安装,编译及配置

项目源码:https://github.com/mogujie/TeamTalk


学习教程:http://blog.csdn.net/column/details/15700.html


好书推荐:


Linux高性能服务器编程(Linux服务器编程领域经典著作,从网络协议、服务器编程核心要素、原理机制、工具框架等多角度全面阐述编写高性能Linux服务器应用的方法、技巧和思想)

作者:游双

出版社:机械工业出版社

出版时间:2013年06月


http://download.csdn.net/download/analogous_love/9673008


Linux多线程服务端编程:使用muduo C++网络库

作者:陈硕


出版社:电子工业出版社


出版时间:2013年01月


https://www.amazon.cn/dp/B00FF1XYJI


https://github.com/chenshuo/muduo




TeamTalk是一套开源的企业办公即时通讯软件,作为整套系统的组成部分之一,TTServer为TeamTalk 客户端提供用户登录,消息转发及存储等基础服务。 TTServer主要包含了以下几种服务器: LoginServer (C++): 登录服务器,分配一个负载小的MsgServer给客户端使用 MsgServer (C++): 消息服务器,提供客户端大部分信令处理功能,包括私人聊天、群组聊天等 RouteServer (C++): 路由服务器,为登录在不同MsgServer的用户提供消息转发功能 FileServer (C++): 文件服务器,提供客户端之间的文件传输服务,支持在线以及离线文件传输 MsfsServer (C++): 图片存储服务器,提供头像,图片传输中的图片存储服务 DBProxy (JAVA): 数据库代理服务器,提供mysql以及redis的访问服务,屏蔽其他服务器与mysql与redis的直接交互 附件中的代码包括了: 1、以上所有服务端的代码 2、PHP的后台管理系统 3、客户端代码:iOS版、Mac版、android版、Windows版



TTServer(TeamTalk服务器端)主要包含了以下几种服务器:

LoginServer (C++): 登录服务器,分配一个负载小的MsgServer给客户端使用

MsgServer (C++): 消息服务器,提供客户端大部分信令处理功能,包括私人聊天、群组聊天等

RouteServer (C++): 路由服务器,为登录在不同MsgServer的用户提供消息转发功能

FileServer (C++): 文件服务器,提供客户端之间得文件传输服务,支持在线以及离线文件传输

MsfsServer (C++): 图片存储服务器,提供头像,图片传输中的图片存储服务

DBProxy (C++): 数据库代理服务器,提供mysql以及redis的访问服务,屏蔽其他服务器与mysql与redis的直接交互




本人的系统是CentOS7,gcc4.8.5,cmake2.8.12.2,mysql5.7.18,redis4.0.1。


编译全过程主要参考文章http://blog.csdn.net/analogous_love/article/details/71210346


补充几点我的主要过程,与参考文章略有不同


1、数据库sql执行/TeamTalk-master/auto_setup/mariadb/conf/ttopen.sql


2、/TeamTalk-master/server/src文件夹有四个sh文件:


protobuf: make_protobuf.sh

hiredis: make_hiredis.sh

mariadb: make_mariadb.sh

log4cxx: make_log4cxx.sh


其中hiredis和mariadb我自己系统已经安装了mysql和redis,所以不需要执行。


请在终端执行:


chmod 777 make_protobuf.sh


./make_protobuf.sh


chmod 777 make_log4cxx.sh


./make_log4cxx.sh


3、(1)修改文件/TeamTalk-master/server/src/db_proxy_server/CMakeLists.txt,第30行


原来:TARGET_LINK_LIBRARIES(db_proxy_server pthread base protobuf-lite mysqlclient_r hiredis curl slog crypto)

修为:TARGET_LINK_LIBRARIES(db_proxy_server pthread base protobuf-lite mysqlclient hiredis curl slog crypto)


因为我本机安装的是mysql,不是mariadb。所以要把依赖库改为mysqlclient。否则会编译报错:


/usr/bin/ld:cannot find -lmysqlclient_r


(2)修改文件server\src\db_proxy_server\business\InterLogin.cpp的51行(CInterLoginStrategy::doLogin函数里面),将这个if语句注释掉:


即,我们不做密码校验,为后续调试省事。


4、执行终端命令:


chmod 777 build.sh


./build.sh version 1


编译完成,会在上级目录生成im-server-1.tar.gz包,手动解压它。


进入文件夹im-server-1,终端执行命令:


./sync_lib_for_zip.sh


它会将lib目录下的依赖库copy至各个文件夹下,同时也会把log4cxx.properties文件拷贝到各个文件夹。


5、打开文件/im-server-1/db_proxy_server/dbproxyserver.conf,修改为自己本机的mysql用户名和密码。


6、进入文件夹im-server-1,执行以下终端命令,先后启动服务


./restart.sh db_proxy_server


./restart.sh file_server

./restart.sh msfs

./restart.sh route_server

./restart.sh http_msg_server

./restart.sh login_server

./restart.sh msg_server


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
4月前
|
开发者 Java 安全
Struts 2 实战秘籍:Action 驱动业务,配置文件成就高效开发!
【8月更文挑战第31天】Struts 2 框架作为 Apache 软件基金会的顶级项目,广泛应用于企业级 Web 应用开发。其核心组件 Action 类处理用户请求,而配置文件定义请求与 Action 类间的映射关系。掌握 Action 组件的最佳实践包括继承 `ActionSupport` 类、实现 `execute` 方法及使用类型安全的方法;配置文件的最佳实践则涉及组织 Action 到包中、定义全局结果及使用通配符映射。遵循这些最佳实践,可构建高效、可维护的 Web 应用程序。
48 0
|
7月前
|
Java Linux Shell
Linux探秘之旅:透彻理解路径、命令与系统概念
Linux探秘之旅:透彻理解路径、命令与系统概念
86 1
|
7月前
|
缓存 编译器 Go
Build实战指南:优雅编译,高效开发
Build实战指南:优雅编译,高效开发
140 0
|
存储 安全 Linux
linuxnfs服务安装与配置实践
linuxnfs服务安装与配置实践
222 1
|
Android开发
【Android菜鸟学习之路】环境搭建问题-修改AVD Path
【Android菜鸟学习之路】环境搭建问题-修改AVD Path
116 0
【Android菜鸟学习之路】环境搭建问题-修改AVD Path
|
Java 数据库连接
S2SH框架整合开发版(十一)上
S2SH框架整合开发版(十一)
107 0
S2SH框架整合开发版(十一)上
|
数据库
S2SH框架整合开发版(十一)下
S2SH框架整合开发版(十一)
S2SH框架整合开发版(十一)下
|
IDE 关系型数据库 MySQL
Tars C++版本的编译及相关教程
Tars C++版本的编译及相关教程
536 0
Tars C++版本的编译及相关教程
|
Linux
我的skynet学习历程 -- (1)安装配置
我的skynet学习历程 -- (1)安装配置
239 0