English Sentence Loading...
英语句子加载中...
SFS 压力测试小软件
作者:灰色的狼 日期:2009-01-11 10:59
去年翻译的SFS AS3 客户端 API.
作者:灰色的狼 日期:2008-08-21 22:46
BlueDream -- SFS开发的网游下载(含源代码)
作者:灰色的狼 日期:2008-04-30 19:10
SFS 更新到1.66
作者:灰色的狼 日期:2009-05-10 07:00
SFS 更新到1.66
SFS 更新到 1.65
作者:灰色的狼 日期:2009-01-31 14:39
请看此帖
http://www.smartfoxserver.com/forums/viewtopic.php?t=4386
更新内容不算太多,就不翻译了。
--------------------
ExtensionHelper new feature: added a rebootServer() that allows extensions to restart the server from code
这个比较实用的功能,可以通过扩展来重新启动服务器。
Fixed a bug in dispatching "userLost" event at Room Level for Java extensions: only rooms where the user was joined will receive a notification. Previously it was dispatched to all rooms.
这个bug已经修复,之前在用户失去连接后,会广播给所有的房间而不是当前所在的房间。
http://www.smartfoxserver.com/forums/viewtopic.php?t=4386
更新内容不算太多,就不翻译了。
--------------------
ExtensionHelper new feature: added a rebootServer() that allows extensions to restart the server from code
这个比较实用的功能,可以通过扩展来重新启动服务器。
Fixed a bug in dispatching "userLost" event at Room Level for Java extensions: only rooms where the user was joined will receive a notification. Previously it was dispatched to all rooms.
这个bug已经修复,之前在用户失去连接后,会广播给所有的房间而不是当前所在的房间。
SFS showcase 增加了不少内容
作者:灰色的狼 日期:2009-01-31 14:25

-----------------------------------------

---------------------------------
建议去体验一下。
SFS 关于无效连接和断线的处理操作
作者:灰色的狼 日期:2008-12-11 15:00
相信做网络游戏开发,出现无效连接和断线情况是经常遇到的。在sfs 1.63里面,提供<MaxSocketIdleTime>标签,更新文档描述为最大的超时连接时间,但是测试老是不起作用。
这里提供另外一个很简单的方法,经测试有效。
1. 在config文件里面设置<MaxUserIdleTime>标签为60,也就是一分钟。
2. 在客户端写一个TimeEvent事件,每30秒执行一次 sfs.sendXtMessage(extName, "dummy", {}) 方法。
<MaxUserIdleTime> :标签的意义是,设置一个最大的用户空闲时间。
sfs.sendXtMessage(extName, "dummy", {}) :此方法可以发送一个很小的数据到服务器端,以保证客户端和server端保持连接。
...over...
这里提供另外一个很简单的方法,经测试有效。
1. 在config文件里面设置<MaxUserIdleTime>标签为60,也就是一分钟。
2. 在客户端写一个TimeEvent事件,每30秒执行一次 sfs.sendXtMessage(extName, "dummy", {}) 方法。
<MaxUserIdleTime> :标签的意义是,设置一个最大的用户空闲时间。
sfs.sendXtMessage(extName, "dummy", {}) :此方法可以发送一个很小的数据到服务器端,以保证客户端和server端保持连接。
...over...
SFS 关于用java写服务器扩展不能重载的解决方案
作者:灰色的狼 日期:2008-12-08 14:52
使用java写服务器扩展可能会碰到编译过后的新class文件替换旧的文件,在sfs服务器端,依然是使用的旧文件,导致重载失败。
解决方法如下:
1. 删除 wrapper.conf 文件下的 “wrapper.java.classpath.3=./javaExtensions/” 此处代码
2. 删除 start.bat批处理文件下的 “./javaExtensions/;” 此处代码
3. 要想自动重新载入新文件,可以在config文件里加上 此句代码激活 “<AutoReloadExtensions>true</AutoReloadExtensions>” 如下:
<Zone name="simpleChat" uCountUpdate="true" buddyList="20" maxUsers="4000" customLogin="false">
<Rooms>
<Room name="The Hall" maxUsers="50" isPrivate="false" isTemp="false" autoJoin="true" uCountUpdate="true" >
<Vars>
<Var name="sit" type="s" private="false" persistent="true">000000</Var>
</Vars>
</Room>
<Room name="The Kitchen" maxUsers="50" isPrivate="false" isGame="false" isTemp="false"/>
<Room name="The Garden" maxUsers="50" isPrivate="false" isTemp="false" />
<Room name="The Bathroom" maxUsers="50" isPrivate="false" isTemp="false" />
<Room name="The Garage" maxUsers="50" isPrivate="false" isTemp="false" />
<Room name="The Living Room" maxUsers="50" isPrivate="true" isTemp="false" pwd="test" />
</Rooms>
<Extensions>
<extension name="json" className="jsonSample.as" type="script" />
</Extensions>
<AutoReloadExtensions>true</AutoReloadExtensions>
<Moderators status="on">
<Mod name="modName" pwd="modPass" />
</Moderators>
</Zone>
4. 最重要的一步,重新执行 start.bat
over...
解决方法如下:
1. 删除 wrapper.conf 文件下的 “wrapper.java.classpath.3=./javaExtensions/” 此处代码
2. 删除 start.bat批处理文件下的 “./javaExtensions/;” 此处代码
3. 要想自动重新载入新文件,可以在config文件里加上 此句代码激活 “<AutoReloadExtensions>true</AutoReloadExtensions>” 如下:
<Zone name="simpleChat" uCountUpdate="true" buddyList="20" maxUsers="4000" customLogin="false">
<Rooms>
<Room name="The Hall" maxUsers="50" isPrivate="false" isTemp="false" autoJoin="true" uCountUpdate="true" >
<Vars>
<Var name="sit" type="s" private="false" persistent="true">000000</Var>
</Vars>
</Room>
<Room name="The Kitchen" maxUsers="50" isPrivate="false" isGame="false" isTemp="false"/>
<Room name="The Garden" maxUsers="50" isPrivate="false" isTemp="false" />
<Room name="The Bathroom" maxUsers="50" isPrivate="false" isTemp="false" />
<Room name="The Garage" maxUsers="50" isPrivate="false" isTemp="false" />
<Room name="The Living Room" maxUsers="50" isPrivate="true" isTemp="false" pwd="test" />
</Rooms>
<Extensions>
<extension name="json" className="jsonSample.as" type="script" />
</Extensions>
<AutoReloadExtensions>true</AutoReloadExtensions>
<Moderators status="on">
<Mod name="modName" pwd="modPass" />
</Moderators>
</Zone>
4. 最重要的一步,重新执行 start.bat
over...
SFS 服务器扩展开发注意事项
作者:灰色的狼 日期:2008-09-02 20:09
1. 使用服务器登陆模式
服务器登陆用户区别于客户端登陆,后者自动做好了附给sfs客户端的User对象的name和id.
而前者均需要手动添加,当服务器端拿到Channel时,记录下name和id,然后通过服务器扩展发送给客户端的两个属性,smartFox.myUserId和smartFox.myUserName.
2.服务器端sendResponse问题
_server.sendResponse事件有个很奇怪的问题,如果传输类型为数组,客户端会拿不到第二个项的值
3.服务器端隐藏方法:getUserByName
服务器端有个隐藏事件, _server.getUserByName ,可以方便拿到用户的登陆名

SmartFoxServer 1.6.3 比较有用的更新内容
作者:灰色的狼 日期:2008-08-31 13:15
《客户端》
•新的RedBox API(as2),包括例子,文档和源代码
•添加了joinAsSpectator标志到客户端的createRoom()方法,允许观众自动转化为游戏者在游戏房间
•修复了,exitCurret的排版错误。之前为AS2的方法名(exitCurrentRoom),也就是那个浪费我两个小时的bug.
《服务器端》
•新的配置参数,允许只有真的改变的用户变量,才进行广播。避免变量没有改变而去进行广播,一个优化参数。
•新的调试标记: ,允许对数据的输入输出调试。
•添加“此用户已经存在”的错误到日志数据。
•新的服务器扩展命令,踢人,禁止等。
•新的标记:,指定一个最大的空闲socket connection连接时间(这个很有用,对用户是否断线,或者是非正常退出进行处理有很大的帮助)
•新的服务器端操作“force login”,允许用户强制登陆,并断开前一个用户的连接。
•NPC特性:Beta功能,允许服务器端创建一些模拟的伪装用户,服务器将认为伪装用户具备真实的用户连接。
•新的addModerator()和removeModerator()方法,可以在运行时动态添加和删除mod。
•新的RedBox API(as2),包括例子,文档和源代码
•添加了joinAsSpectator标志到客户端的createRoom()方法,允许观众自动转化为游戏者在游戏房间
•修复了,exitCurret的排版错误。之前为AS2的方法名(exitCurrentRoom),也就是那个浪费我两个小时的bug.
《服务器端》
•新的配置参数,允许只有真的改变的用户变量,才进行广播。避免变量没有改变而去进行广播,一个优化参数。
•新的调试标记: ,允许对数据的输入输出调试。
•添加“此用户已经存在”的错误到日志数据。
•新的服务器扩展命令,踢人,禁止等。
•新的标记:,指定一个最大的空闲socket connection连接时间(这个很有用,对用户是否断线,或者是非正常退出进行处理有很大的帮助)
•新的服务器端操作“force login”,允许用户强制登陆,并断开前一个用户的连接。
•NPC特性:Beta功能,允许服务器端创建一些模拟的伪装用户,服务器将认为伪装用户具备真实的用户连接。
•新的addModerator()和removeModerator()方法,可以在运行时动态添加和删除mod。