XproerIM V1.1发布
更新时间:2013-03-30
说明:
最开始这个项目采用的是开源的XMPP协议,及开源的gloox库。但是一年的时间里,随着开发的深入,慢慢的开始发现的GLOOX的一些缺点,比如要实现最基础的用户注册用户登陆功能,不得不实现两个类,然后在这两个类里面重载函数来写实现逻辑。现在我们的实现方式简化为一个类,将不同的逻辑分隔不同的函数。如果增加业务逻辑只需要扩展这些函数即可,业务逻辑本身的实现变得更加的简洁和轻量,也更容易理解。下面有两张图可以对比
网络通迅协议模块:
在服务器设计方面我们也进行了重大的改进:
首先是可执行文件大小,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,完全重新设计服务端。
主界面截图:
快速搜索好友:
聊天界面:
posted on 2013-03-31 11:19 Xproer-松鼠 阅读(1227) 评论(7) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了