TeamTalk介绍
项目框架
TeamTalk是蘑菇街的开源项目,github维护的最后时间是2015但是仍然是一款值得学习的好项目,麻雀虽小五脏俱全,本项目涉及到多个平台、多种语言,简单关系如下图
服务端:
CppServer:TTCppServer工程,包括IM消息服务器、http服务器、文件传输服务器、文件存储服务器、登陆服务器
java DB Proxy:TTJavaServer工程,承载着后台消息存储、redis等接口
PHP server:TTPhpServer工程,teamtalk后台配置页面
客户端:
mac:TTMacClient工程,mac客户端工程
iOS:TTIOSClient工程,IOS客户端工程
Android:TTAndroidClient工程,android客户端工程
Windows:TTWinClient工程,windows客户端工程
语言:c++、objective-c、java、php
系统环境:Linux、Windows,Mac, iOS, Android
编译windows客户端
下载TeamTalk
git命令:git clone https://github.com/meili/TeamTalk
安装VS2013
安装vs2013时需要ie10及其以上
需要开启文件服务msfs,不然发送图片会报错
安装完成vs2013后打开TeamTalk\win-client\solution\teamtalk.sln解决方案文件后等待初始化,点击本地windows调试器,编译成功
如何编译Android客户端
安装AndroidStudio
下载地址:AndroidStudio中文社区
另外说明下:Android Studio 2.2 Preview 3 已经自带了OpenJDK,安装以后可以直接运行
编译项目
打开Android studio 选择并打开TeamTalk\android目录,自动构建编译项目。
build.gradle文件中如果修改为compileSdkVersion 23,即6.0及以上的需要引入 useLibrary 'org.apache.http.legacy'库
编译成功后运行出现点击用户头像崩溃,根据错误提示需要修改UserInfoActivity中的布局文件tt_fragment_activity_userinfo增加android:id="@+id/xxxx"
如何编译服务端
有两种方法:
如果想去体验下整个项目所用的软件熟悉配置流程第一种适合你;
如果想去体验下效果,采用第二种跟适合你;
从头到尾直接搭建
新版蓝狐教程注意事项
使用centos7下载mysql地址失效:
wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.22.tar.gz
改成wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35.tar.gz
libiconv在CentoS 7上make会出下面的错误:libiconv stdio.h:1010:1: error: ‘gets’ undeclared here
解决方法:
cd srclib/
sed -i -e '/gets is a security/d' ./stdio.in.h
使用蓝狐virtualBox 环境
文件配置信息
- 下载过慢的话在google浏览器下可以使用baidudl插件获取下载地址,使用FDM下载速度比较可观。
- cat CentOS-hd.tar.gz.* > CentOS-hd.tar.gz ,cat合并与tar解压命令需要在Linux环境下。
18.1 我虚拟机的环境
链接: http://pan.baidu.com/s/1sjx8g49 密码: 4572
18.2 虚拟机硬盘
因网盘大小限制1G,所以将虚拟机硬盘切分成3个文件上传:
链接: http://pan.baidu.com/s/1mgDXvwW 密码: tgzp
请使用如下命令合并解压:
cat CentOS-hd.tar.gz.* > CentOS-hd.tar.gz
tar -zxvf CentOS-hd.tar.gz
18.3 账号信息
虚拟机账号信息如下:
linux账号密码:root/123456
mysql root账号密码:root/test123
mysql teamtalk账号密码:teamtalk/test@123
php 后台账号密码:admin/admin
测试用户账号密码:test/test
配置虚拟机的环境
- 运行虚拟机出现UUID(通用唯一识别码)重复了,需要重新设置UUID
VirtualBox.exe internalcommands sethduuid "E:\xxxx\xxx\ubuntu 12.10.vdi"(注:4.0.4之前版本的命令为setvdiuuid)
当出现“UUID Changed to”时说明修改成功了,可以重新添加虚拟硬盘了。
配置系统环境
- 使用root身份登录系统后,redis没有随着系统自动启动需要手动启动,不然db_proxy_server启动会出错,依赖于redis
/etc/init.d/redis start
- 如果没有发现:db_proxy_server, http_msg_server,route_server,login_server,msg_server的进程,请执行如下命令启动:
cd xxxx
../daeml xxxx
启动msfs服务-图片语音正常发送
- 1-把msfs下面的msfs.conf.example拷贝一份变成msgs.conf
- 2-打开该文件,配置文件的存放地址BaseDir=/xxx(可以自己取)
- 3-启动msfs,在teamtalk目录下的命令如下:
cd msfs
cp msfs.conf.example msgs.conf
vim msgs.conf #修改其中的地址,端口不用改,修改完成以后使用esc回到命令模式使用:wq保存退出
../daeml msfs
cd log
vim default.log #查看服务是否启动成功