TeamTalk初学笔记

1、图像处理:采用CxImage图像操作类库,它可以快捷地存取、显示、转换各种图像;(暂时没找到在哪使用了)

一、win-client

1、解析参数:采用jsoncpp

示例:登陆msg_server服务时候从config.dat中取配置信息;

2、界面:从XML中获取控件等UI界面是用的Duilib界面库画出来的;

示例:登陆界面的tipText框,提示内容取自:chinese.ini

3、日志yaolog记录日志;格式:LOG__(szLogID, szFormat, ...);

示例:LOG__(ERR,_T("bad function call-m_keyId:%d"),m_keyId);

4、音频处理

4.1、libogg是一个C++库,用来处理 Ogg 多流传输格式的解码器;

4.2、Speex是一套专门用于压缩声音的库,压缩声音的性能非常高;

5、消息处理:Tcp Socket;netlib库

6、数据报文的结构:采用Protocol Buffer(简称PB)是google 的一种数据交换的格式;

7、http请求:采用httpclient;

9、表情处理:采用GifSmiley动态gif,bmp,jpg等图片文件;

二、php_Server:采用CodeIgniter框架

三、IM_SERVER与IM_DBPROXY

server都是用的netlib,而netlib虽然是用c++写的,但其实却是C风格的。所有的接口都是封装成netlib_xxx的函数形式。而异步的操作直接传入一个回调函数,这种做法和node.js的异步是非常相似的。(摘自笨笨的鸡蛋的博客)

1、login_server

2、db_proxy_server

3、http_msg_server

4、msg_server

5、route_server

6、msfs

7、PushServer

采用了SigSlot(信号槽),用来绑定事件的响应处理函数;

8、FileServer


以上分析下来,我要修改PC客户端,则必须先学习Duilib库的使用先。一个个来吧。。。


相关网址

1、开源即时通讯解决方案 TeamTalk(项目简介)

http://www.oschina.net/p/teamtalk/

2、TeamTalk 一键部署方案:TTAutoDeploy

http://www.open-open.com/lib/view/open1414591839840.html

3、TeamTalk消息服务器原理及二次开发简介(笨笨的鸡蛋)

http://my.oschina.net/u/877397/blog/483599

4、TeamTalk 服务端分析 一、编译(蓝狐)

http://www.bluefoxah.org/teamtalk/TeamTalk_Compile.html

时间: 2024-10-03 12:15:28

TeamTalk初学笔记的相关文章

TeamTalk初学笔记3---关于win-client【第二篇:入口文件_头文件】

研究一个应用程序的源码,我们常常会从它的第一个窗口:登陆界面开始研究.至少我个人就比较喜欢从程序启动的瞬间,第一时间执行的那个函数开始着手. 选中解决方案,右键->属性->启动项目,可以看到当前选中的是单启动项目:teamtalk.C++的英文名字就是cplusplus,简写:cpp.这下可以知道入口文件必然是同名文件:teamtalk.cpp了,寻找一番,就可以找到,如下图位置: 文件的物理路径:\win-client\src\teamtalk\文件夹下面. 既然入口已经找到,接下来这篇博客

TeamTalk初学笔记4---关于win-client【第二篇:入口文件teamtalk.cpp】

#include "stdafx.h" #include "teamtalk.h" #include "UI/MainDialog.h" #include "GlobalConfig.h" #include "versioninfo.h" #include "google/protobuf/stubs/common.h" #include "utility/utilCommon

TeamTalk初学笔记2---关于win-client【第一篇】

        为了直观的修改TT客户端页面,我花了很多时间在网上寻找UIDesigner设计工具.最后实在是找不到了,就找了同事帮忙,他climb over the wall(这个词都成敏感词汇了?博客里居然不准用)之后终于帮我下载到了. 以下是Duilib的一些网址,很多都需要climb over the wall后才能访问. 官网: www.duilib.com 论坛: bbs.duilib.com qq群: 153787916(1群),79145400(2群),1507570(3群) g

初学笔记(C#事件)

1.声明事件      EventHandler是一个预定义的委托,它定义了一个无返回值的方法.在 .Net Fromwork中,他的格式: public  delegate  void EventHandler (Object  sender, EvenArgs  e) 其中sender的类型为Object,表示时间发布者本身,e用来传递事件的相关信息,数据类型为EvenArgs及其派生类. 标准的EvenArgs并不包含任何事件数据, 因此EventHandler专用于表示不生成数据的事件的

lisp初学笔记

学习任何知识,都不能仅仅把它们当做知识,更重要的是要把它们在实际编程实践中应用起来,持有这样的学习观念才不至于让你变成学究式的活字典,对于程序员来说这一点尤其重要,你学习的任何语言知识,一定要在实际的程序编写过程中不断练习.不停实践,纸上得来终觉浅,绝知此事须躬行. LispBox 实际上是把 Emacs.Slime.Clozure CL 以及 QuickLisp 集成到一起,使用 LispBox 做开发环境就相当于选择了 Emacs 作为编辑器.选择 Slime 作为交互界面,那么一定要熟悉

flex入门--初学笔记1

环境:flashBuilder + eclipse 4.2 基本控件: 1 <mx:Script> 2 <![CDATA[ 3 import mx.controls.Alert; 4 public function showMsg(msg:String):void{ 5 mx.controls.Alert.show(msg); 6 } 7 ]]> 8 </mx:Script> 9 <mx:Panel title="常用控件" width=&qu

AS3 初学笔记 actionscript-之变量

变量 变量可用来存储程序中使用的值.要声明变量,必须将 var 语句和变量名结合使用.在 ActionScript 2.0 中,只有当您使用类 型注释时,才需要使用 var 语句.在 ActionScript 3.0 中,总是需要使用 var 语句.例如,下面的 ActionScript 行声明一个名 为 i 的变量: var i; 如果在声明变量时省略了 var 语句,则在严格模式下会出现编译器错误,在标准模式下会出现运行时错误.例如,如果以前未 定义变量 i,则下面的代码行将产生错误: i;

js&#39;初学笔记

之前看过一个博主说的学习前端养成写博客的习惯,我慢慢学着在上面写点东西,记录我的学习. 这段时间把之前学的js基础补上一点,学了一些对数组和字符的操作,split(),将字符串变成数组.join(),数组变为字符串.conca()连接数组. charAt(),charCodeAt(),formCharCode(),slice(start,end),substring(),substr(start,length);indexOf(); 有一些我就不多说了,在这里记下来,以后看看,有兴趣可以看看山冈

网站初学笔记3-HTML实用元素

HTML中链接邮件地址: <!DOCTYPE html><html><body> <address>Written by <a href="mailto:[email protected]">Donald Duck</a>.<br> Visit us at:<br>Example.com<br>Box 564, Disneyland<br>USA</addres