最终项目 X-Messenger Client
2011-06-17 17:39
X-Messenger Client是轩辕高端IT培训中心推出的支持多协议(包括XMMEP)、多帐户、多会话的现代即时通信客户端,作为一个新的实战项目,X-Messenger Client旨在锻炼学员对网络、多线程、数据库以及Linux API的运用、对软件架构的认识。
X-Messenger Client的关键特性:
- 支持多协议,不论是轩辕高端IT培训中心自定义的XMMEP消息协议,还是Jabber/XMPP、MSN、QQ、ICQ、AIM等其它协议,都可在X-Messenger Client下实现;
- 支持多帐户、多会话,同QQ和MSN等IM Client不同,X-Messenger支持在同一个客户端进程中支持多个不同协议的帐户,如X-Messenger帐户、MSN账户;也可以是同一个协议下的多个帐户,如同时使用两个不同的X-Messenger帐户;
- 基于局域网的P2P文字聊天、群聊、文件共享、文件传输;
- 支持XMMEP协议下的P2P文字聊天、群聊、离线消息、文件传输;
- 好友管理,聊天室/群管理;
- 优秀的架构和设计,清晰的模块划分,将UI与后台、模块与模块之间的耦合降到最低。
涉及技术:
- C++:使用C++语言实现,充分融合面向对象和泛型编程;
- UI:gtkmm-2.4;
- 网络I/O:Boost.Asio、ACE、Linux Socket + Epoll三种方案之一;
- 并发:Boost.Thread、ACE、Linux Pthread三种方案之一;
- 客户端数据持久化:sqlite3;
- 声音组件:GStreamer-0.10;
- 以及其它一些技术。
屏幕截图:
以下为X-Messenger-0.2.10的屏幕截图:
X-Messenger 主窗口
(Buddy和Group、Chatroom的Tooltips不同)
X-Messenger 聊天窗口
(支持互联网/局域网 P2P一对一文字聊天、P2P群聊)
X-Messenger 文件提交窗口
(可为各个文件设置不同的下载密码,或批量设置相同的下载密码)
X-Messenger 共享文件列表
(第四列标示:是否为本地文件(即由“我”提交共享)还是由其它用户提交共享的远程文件;第五列标示:是否需要下载密码)
X-Messenger 文件传输管理
(支持取消正在进行的文件传输)