最终项目 X-Messenger Servers

X-Messenger是 轩辕高端IT培训中心 推出的即时通信(Instant Messenger)工具,支持文字聊天、文件传输、好友管理等即时通信功能。作为 Linux C++系列 课程的最终项目之一,旨在锻炼学员对C++基础、C++标准库、Boost类库或ACE(二者选其一)、数据库开发的掌握程度,同时通过该项目的实现,充分了解高吞吐量、低延迟的高性能服务器应用的设计和实现套路以及应用层通信协议的制定和实现。

服务器端实现的功能:

  • 即时消息:支持即时消息、离线消息(其中即时消息系P2P方式实现);
  • 文件传输:以P2P方式实现;
  • 好友管理:添加、删除、修改好友;添加、删除、修改好友分组;
  • 用户状态管理:好友上线、离线,状态改变通知。

服务器端架构:

X-Messenger服务器群由多组功能不一的Server组成,各组Server分别承担各自的任务,以下是X-Messenger服务器端的网络拓扑示意图和服务器端架构图:

X-Messenger 服务器网络拓扑图

Router Server 架构图

该项目所涉及的技术:

  • C++:使用C++语言实现,充分融合面向对象和泛型编程模式;
  • Boost:Boost.Asio、Boost.Thread、Boost.SmartPtr、Boost.Function、Boost.Bind、Boost.StringAlgo、Boost.Unordered、Boost.PropertyTree、Boost.Format 等类库;
  • ACE:Reactor、Acceptor-Connector、Task等Frameworks;
  • OTL:访问MySQL或Oracle数据库;
  • 数据库:Oracle或MySQL;
  • Linux Shell Script:服务器启动和守护脚本;
  • 应用层通信协议:自定义的XMMEP(X-Messenger Message Exchanging Protocol)协议。

项目部署:

  • 操作系统:Linux 2.6.x;
  • 数据库:MySQL 5.1+ / Oracle 10g(二者选其一)。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。