最近見很多人問道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