zoukankan      html  css  js  c++  java
  • XproerIM V1.1发布 Xproer

    更新时间:2013-03-30

    说明:

    最开始这个项目采用的是开源的XMPP协议,及开源的gloox库。但是一年的时间里,随着开发的深入,慢慢的开始发现的GLOOX的一些缺点,比如要实现最基础的用户注册用户登陆功能,不得不实现两个类,然后在这两个类里面重载函数来写实现逻辑。现在我们的实现方式简化为一个类,将不同的逻辑分隔不同的函数。如果增加业务逻辑只需要扩展这些函数即可,业务逻辑本身的实现变得更加的简洁和轻量,也更容易理解。下面有两张图可以对比

    gloox的实现 XproerIMClient的实现
    image image

    网络通迅协议模块:

    image

    在服务器设计方面我们也进行了重大的改进:

    首先是可执行文件大小,OpenFire的大小是40MB,XproerIM-Server总大小只有1.5MB,总共节省了26倍。性能却提高了50倍。因为XproerIM-Server全部采用C++开发,OpenFire采用JAVA开发。XproerIM-Server能够自已管理每1byte的内存,同时采用内存池即节省内存也不会造成系统频繁清理内存。

    XproerIM-Server与OpenFire相比能够大量的使用高性能系统IO或者网络IO,使得性能得到数量级的提高。OpenFire使用的功能都是经过JAVA包装过的,在调用时会造成大量的性能损失和不必要的系统资源开销。

    其次是跨平台的考虑,我们考虑了跨平台支持的问题,在开发时我们就尽量考虑将代码写的和平台无关,这样XproerIM-Server就可以同时支持Windows和Linux,

    第三,我们将数据库从程序中分离出来,这种设计使得XproerIM-Server能够很容易和现有用户数据库无缝整合。

    第四,采用高性能的通迅模型-IOCP(Windows),epoll(Linux),能够在占用极少的服务器资源前提下将服务器性能发挥到极限。

    第五,采用分布式构架设计,服务器负载能力是任何互联网企业都非常关心的问题。XproerIM-Server支持自由的扩展服务器,将负载压力分担到多台服务器中,从而提高整个系统的负载能力,使系统能够满足企业的业务发展需求。

    主要改进:

    1.优化主面板

    2.完善登陆流程。

    3.完善消息流程。

    4.放弃Gloox及OpenFire,完全重新设计服务端。

    主界面截图:

    image

    快速搜索好友:

    image

    聊天界面:

    image

  • 相关阅读:
    C++模板实战6:迭代器
    Hacking up an armv7s library
    Android之ListView分页数据加载
    Android 命令行打包和签名
    django 自定模板标签的注册
    [置顶] 高效能人士的七个习惯读书笔记(二)
    价格战拉上了Android平板电脑
    Synergy 多系统共享鼠标键盘 Windows 和 Mac 完全配置教程
    global planner源码阅读
    源码安装eigen
  • 原文地址:https://www.cnblogs.com/songsu/p/2991421.html
Copyright © 2011-2022 走看看