smartfoxserver2X平臺架構 數據庫
In this document we take a bird’s eye view at the SmartFoxServer 2X platform and briefly discuss each of the components in the stack. Starting at the core of the server we find the network engine (codenameBitSwarm) which is the third incarnation of the original socket engine built for SmartFoxServer 1.x. This layer provides unique features to SFS2X that are typically not found in other competitor’s solutions (we discuss all the technical details in a separate comprehensive white paper). api
本篇文章將俯瞰smartfoxserver平臺,並簡單的介紹下這個架構的組成。從服務核心開始,咱們發現網絡通信引擎(代號 BitSwarm)照SmartFoxServer1.x相比瘦身了三分之一。這是SFS2X獨一無二的特性,沒有其餘框架擁有這個特性。(咱們在紙上對每一個部分都有詳細的論述)。
In essence BitSwarm provides TCP/UDP connectivity, Session management, network security tools, the HRC (High-Resilient-Connections) system, clustering services, monitoring and more, using an highly scalable non-blocking design. 安全
BitSwarm做爲核心,提供了TCP和UDP鏈接,session管理,網絡安全工具,HRC系統(高彈性鏈接),集羣服務,監控等等,高伸縮的設計。 服務器
核心服務和管理 網絡
The lower layer of SmartFoxServer 2X provides a number of essential services and managers such as configuration services, logging, security, task scheduling, zone/room/user management, buddy lists, banned user management, remote administration, JMX, email services, http services, database integration and lots more. session
SmartFoxServer 2X以前的版本提供了大量的基礎服務和管理,好比與配置服務,日誌,安全,任務調度,區、房間、用戶管理,好友列表,禁止用戶管理,遠程管理,JMX,email服務,http服務,數據庫整合等等。 架構
All these services coalesce in a well organized set of Server API that provide developers a host of high level functionalities acting as the building blocks of their applications. app
全部這些服務都ServerAPI中,結構分明,併爲開發者提供了高級別的函數來構建本身的應用。 框架
服務端API和擴展 less
Extensions are the mechanism by which developers can plug their own application logic in the system and leverage the Server API. In a similar way to a servlet container, the SFS2X framework provides an efficient way to handle custom client requests and server events. Rapid development is guaranteed by a rational workflow that provides hot-redeploy, automatic dependency discovery and a well-thought class loading mechanism.
擴展的原理就是開發插入程序的邏輯裏的代碼,對ServerAPI的行爲產生影響。跟Servlet容器相似的,SFS2X框架提供了一個高效的方式來處理自定義的客戶端請求和服務是服務器事件,提供熱部署的工做流程和自動掃描類進行加載來保證程序的快速開發。
客戶端API
The topmost element in the stack is the public API, which is exposed directly to the clients. Any application speaking the SFS2X protocol can access this API and interact with the server very easily and securely.
上圖棧中頂端的public api是直接暴露給客戶端的。任何使用SFS2X協議的應用程序均可以經過這個API跟服務端很是簡單安全的通信。
The client libraries also provide a consistent framework across all supported platforms, making it very easy to create multiple clients in Flash, Unity, iPhone and iPad, Android devices, etc. The following table shows all the supported platforms and languages.
客戶端的函數庫提供了全部支持平臺的統一接口,建立許多的客戶端如Flash, Unity, iPhone and iPad, Android devices等是很容易的。下面的表格展現了全部支持的平臺和語言。
API language Platform |
ActionScript 3 | C# | Java | Objective C | JavaScript | C++ | |
Flash Web player Standalone |
|||||||
Unity Web player Standalone |
|||||||
iOS |
|||||||
Android | |||||||
HTML5 | |||||||
Java2 SE | |||||||
Mac OSX |
|||||||
Windows 8 | |||||||
Windows Phone 8 | |||||||
.Net / Mono | |||||||
Others (*) |
= native | = Unity publishing | = Adobe Air publishing
使用本地方法|使用Unity的方法 |使用flash的方法
(*) APIs behavior with other platforms (Blackberry, PS3, XBox, Wii, etc) not tested directly.
API對其它平臺的如Blackberry, PS3, XBox, Wii等的支持沒有測試過。
Launching a new game, interacting with friends in the buddy-list or moderating a chat is a matter of a few method calls. Additionally the client can access all the extra functionalities exposed by the custom Extensions, offering a limitless set of possibilities.
開始一個新的遊戲,跟好友列表裏的好友聊天只是幾個方法的調用。此外客戶端能夠額外的訂製本身的擴展,可以提供無限的可能。