sfs是smartfoxserver的縮寫。最近公司的一個android項目要求使用sfs作為伺服器。我去,伺服器開發目前就我自己在研究。他們也真是放心。因為這個伺服器是針對flash開發的,官網上說支援android,但是相關資料幾乎沒有。首先從學習sfs的java用戶端開始學習。
首先需要安裝sfs,然後使用其中的api。sfs有pro和2x兩個适合的版本,2x是新版,但是暫且用pro了。去官網可以下載下傳javase和android的例程。java的例程導入eclipse需要使用file->new->other,選擇java project from from existing ant buildfile。其中需要使用loadconfig方法載入xml配置檔案。xml檔案路徑可能有錯誤,使用的是程式的預設使用者路徑,可以通過程式中列印使用者路徑來找到這個路徑拷入配置檔案。
使用api主要用到了smartfoxclient這個類。在程式中對其事件進行相應即可。還是要小小激動一下,畢業設計做的五子棋伺服器端沒有參考資料,憑經驗琢磨出來了一套消息機制。沒想到基本的消息流程跟sfs還是比較一緻的。這裡列出所有事件:
sfs = new smartfox();
//接收伺服器超管資訊事件
sfs.addeventlistener(sfsevent.admin_message, listener);
//接收加載配置檔案失敗事件
sfs.addeventlistener(sfsevent.configloadfailure, listener);
//接收加載配置檔案成功事件
sfs.addeventlistener(sfsevent.configloadsuccess, listener);
//接收連接配接伺服器成功事件
sfs.addeventlistener(sfsevent.connection, listener);
//接收連接配接伺服器失敗事件
sfs.addeventlistener(sfsevent.connection_lost, listener);
//接收連接配接伺服器恢複事件
sfs.addeventlistener(sfsevent.connection_resume, listener);
//接收重試伺服器連接配接事件
sfs.addeventlistener(sfsevent.connection_retry, listener);
//接收響應背景擴充事件
sfs.addeventlistener(sfsevent.extension_response, listener);
//接收使用者邀請事件
sfs.addeventlistener(sfsevent.invitation, listener);
sfs.addeventlistener(sfsevent.invitation_reply, listener);
//接收被邀請使用者的回複事件
sfs.addeventlistener(sfsevent.invitationreplyerror, listener);
//接收使用者登陸區域事件
sfs.addeventlistener(sfsevent.login, listener);
//接收使用者登區錯誤事件
sfs.addeventlistener(sfsevent.login_error, listener);
//接收使用者登出區域事件
sfs.addeventlistener(sfsevent.logout, listener);
sfs.addeventlistener(sfsevent.moderator_message, listener);
//接收領頭者消息事件
sfs.addeventlistener(sfsevent.object_message, listener);
//接收遊戲者成功轉換為觀察者事件
sfs.addeventlistener(sfsevent.playertospectator, listener);
//接收遊戲者轉換為觀察者錯誤事件
sfs.addeventlistener(sfsevent.playertospectator_error, listener);
//接收私人消息事件
sfs.addeventlistener(sfsevent.private_message, listener);
//接收公共消息事件
sfs.addeventlistener(sfsevent.public_message, listener);
//接收建立房間事件
sfs.addeventlistener(sfsevent.room_add, listener);
//接收房間基礎屬性改變事件
sfs.addeventlistener(sfsevent.roomcapacitychange, listener);
//接收房間基礎屬性改變錯誤事件
sfs.addeventlistener(sfsevent.roomcapacitychange_error, listener);
//接收查找房間的資訊結果事件
sfs.addeventlistener(sfsevent.roomfindresult, listener);
//接收訂閱一個房間組事件
sfs.addeventlistener(sfsevent.roomgroupsubscribe, listener);
//接收訂閱一個房間組錯誤事件
sfs.addeventlistener(sfsevent.roomgroupsubscribe_error, listener);
//接收建立房間錯誤事件
sfs.addeventlistener(sfsevent.roomcreationerror, listener);
//接收取消已訂閱的一個房間組事件
sfs.addeventlistener(sfsevent.roomgroupunsubscribe, listener);
//接收取消已訂閱的一個房間組錯誤事件
sfs.addeventlistener(sfsevent.roomgroupunsubscribe_error, listener);
//接收進入房間事件
sfs.addeventlistener(sfsevent.room_join, listener);
//接收進入房間錯誤事件
sfs.addeventlistener(sfsevent.roomjoinerror, listener);
//接收房間名更改事件
sfs.addeventlistener(sfsevent.roomnamechange, listener);
//接收房間名更改錯誤事件
sfs.addeventlistener(sfsevent.roomnamechange_error, listener);
//接收房間密碼更改事件
sfs.addeventlistener(sfsevent.roompasswordstate_change, listener);
//接收房間密碼更改錯誤事件
sfs.addeventlistener(sfsevent.roompasswordstatechangeerror, listener);