天天看點

SmartFoxServer簡介(一)

        最近見很多人問道SmartFoxServer的問題,看大家很抓狂,網上的文章也很零碎。索性抛磚引玉,共同求進步吧。

        先簡單介紹下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代表你寫的擴充主程式入口,一些重要的事件需要在此聲明。我們先看下這個擴充主類都需要些什麼吧。

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", 你的擴充全類名));

        好了,這樣至少你的第一個smartfoxserver就可以跑起來了。下次為大家解析登陸流程。

版權聲明:本文為CSDN部落客「weixin_33951761」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/weixin_33951761/article/details/92457209