有朋友諮詢開發多人在線聊天系統,比較了一些受訪和開源的系統,歸納如下:
1 服務端選擇 smrtfoxserver 2.x :服務端開發可以選擇的 java 或 python ,python 可以快速的開發原型 demo ,java 也是比較好的選擇,有很多的開源代碼可用。客戶端支持 android ,actionscript ,unity 3d ,silverlight 等等,基本說對於移動開發可以包含。
有現成的成功案例,大公司也採用,不用擔心性能問題,唯一缺點,費用太貴,免費可用 100 個用戶。
2 服務端採用 openfire 開源服務器:服務端採用 java 開發,內部使用 mina 實現網絡接口,mina 也是和 netty xsocket 類似的無阻塞網絡協議實現。客戶端目前只能用 android ,使用 asmack 庫。採用 xmpp 協議實現消息流 。
3 如果不考慮手機端,可以採用 node.js +websocket 實現,這個也是比較好。
4 可以考慮採用 tornado python web 服務器,這個也是無阻塞,支持 1K 以上用戶連接。
5 建議採用 amazon 的 ec 服務器,以後擴展方便 ,前段 nginx + tornado ,採用 python 開發,客戶端技術使用 html5 + 本地調用,平臺:web+android +ios+wp7 , 使用 rest 接口進行數據交換 ,可用 json 格式,數據庫的 mysql 。
6 採用 google gae + cloud sql ,優點:不必考慮服務擴展,google 幫你做好了。
缺點: 限定了開發語言和環境。
本人沒用過,接下來準備使用該 5 方案做一個 demo :
目標:搭建一個以圖片交流的平臺,用戶可用方便的手寫後和其他用戶交流,能同事容納 100K 用戶
週期: 1 年 業餘開發