XproerIM V1.1發布


更新時間: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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM