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);