SmartFoxServer簡介(一)

        最近見不少人問道SmartFoxServer的問題,看你們很抓狂,網上的文章也很零碎。索性拋磚引玉,共同求進步吧。 java

        先簡單介紹下SmartFoxServer吧,一個很是優秀的跨平臺socket服務器,內有不少遊戲開發用到的數據結構和支撐性功能。多用於遊戲、在線聊天室方面的應用。支持多種客戶端和服務器語言。分爲免費和收費版本。免費版本有100人限制。 服務器

        總體上它有3個比較核心的概念。zone、room、user。房間依賴於zone、用戶依賴於房間。zone須要在它的配置文件進行生命。擴展配置以下: 數據結構

<extension>
    <name>xxxExt</name>
    <type>JAVA</type>
    <file>com.xxx.xxx</file>
    <propertiesFile></propertiesFile>
    <reloadMode>NONE</reloadMode>
  </extension>

        xxxExt你起的擴展名稱,未來寫好的程序要打包到 /extensions/xxxExt 下,sfs會自動加載裏邊的jar包。type表明你用什麼語言進行服務器端擴展,file表明你寫的擴展主程序入口,一些重要的事件須要在此聲明。咱們先看下這個擴展主類都須要些什麼吧。 socket


public class xxxExtensionMain extends SFSExtension {

    @Override
    public void init() {
    	initEventHandlers();
    }
 
    public void destroy(){
    	super.destroy();
    }
    
    // 綁定sfs系統事件
    private void initEventHandlers() {
        //註冊登陸事件
        this.addEventHandler(SFSEventType.USER_LOGIN,      LoginEventHandler.class);
        //註冊加入zone事件
        this.addEventHandler(SFSEventType.USER_JOIN_ZONE,  JoinZoneEventHandler.class);
        //註冊加入房間事件
        this.addEventHandler(SFSEventType.USER_JOIN_ROOM,  JoinRoomEventHandler.class);
        //註冊離開房間事件
        this.addEventHandler(SFSEventType.USER_LEAVE_ROOM, LeaveRoomEventHandler.class);
        //註冊斷開鏈接事件
        this.addEventHandler(SFSEventType.USER_DISCONNECT, LeaveRoomEventHandler.class);
    }
    
    // 初始化過濾器
    private void initFilters(){
    	
    }
}

        sfs擴展很強,它容許你進行房間擴展。


public class MyRoomExtension extends SFSExtension {
    @Override
    public void init() {
    }

    @Override
    public void destroy() {
        super.destroy();
    }
 }

         該擴展須要你在CreateRoomSettings createRoomSettings = new CreateRoomSettings();這個類進行設置。createRoomSettings.setExtension(new RoomExtensionSettings("xxxExt", 你的擴展全類名)); ide

        好了,這樣至少你的第一個smartfoxserver就能夠跑起來了。下次爲你們解析登錄流程。 this

相關文章
相關標籤/搜索