gembin

OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP

HBase, Hadoop, ZooKeeper, Cassandra

Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.

There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.

About Me

 

Smartfoxserver

SmartFoxServer 是专门为Adobe Flash设计的跨平台socket服务器,让开发者高效地开发多人应用及游戏. 该服务器主要用来创建多玩家游戏。并提供强大的制作工具,各种回合制游戏和实时游戏都可以胜任。 SmartFoxServer 支持的播放器从Flash player6版到最新的Flash Player 9,并提供丰富的Actionscript 1.0, 2.0 and 3.0 APIs,同时也支持 Flex Builder 2 and 3. 该产品带有详细的帮助文档, 大约 35 个带源代码的示例 还有强大的远程管理工具. 本入门假定你会基本的flex3开发知识。

SFS简介快速 可靠:

SmartFoxServer 是基于高效和可升级的结构,可以在单CPU服务器机子上处理数千的客户端. 是有名的平民的服务器,最低支持P2-350Mhz。很多公司和游戏机构都已经使用 SmartFoxServer 开发出了很多高质量的在线多玩家应用及游戏。比如Club Penguin

高制作能力:

SmartFoxServer 带有一套支持Actionscript 1.0, 2.0 和 Actionscript 3.0 的APIs 他们都是从flash核心对象扩展出来的新功能,可以让开发者简单快速地开发多玩家应用.

扩展性:

SmartFoxServer 可以使用Actionscript, Javascript, Python and Java进行服务器端的扩展. 自定义服务器端扩展,可以执行复杂的应用,游戏逻辑,高级用户,房间管理,及服务器新行为,等等 另外。

跨平台性:

SmartFoxServer 可以运行在任何系统上: 因为SmartFoxServer 是100%的纯 Java 开发的应用,它可以运行在任何平台上,如:Windows (NT/2K/XP/2003), Linux, MacOS X (10.4 or higher), Solaris 等等.

强大的附加软件:

SmartFoxServer 带有强大的附加软件来扩展其功能:

BlueBox:

让玩家避开网络限制(防火墙, 代理) 来进行多玩家游戏,而不牺牲连接速度. 因为 API 会自动在”幕后“选择最好的连接系统。

RedBox:

免费开源的附加软件,使在SmartFoxServer的框架中集成了音频/视频流的能力(red5), 并简化了 A/V应用的开发难度。

什么是SFS客户端的API?

Sfs已经为你做好了基本的客户端网络通信通道,这个通道可以联通服务端的相关功能模块来实现相关功能。比如用户登录/房间登陆/用户信息广播/更新用户房间信息等等。你只调用和扩展通道中的指定方法即可。

如何安装?

从www.smartfoxserver.com 中找到最新版本的smartfoxserverpro(1.6.2)。然后安装找到RedBoxClient_AS3.SWC在flex3中导入此客户端插件。当然也可以将flashapi中的AS3中源文件直接拷到自己的项目中。这样就可以调用SFS的客户端的API了。

基本步凑

发起socket连接:这是第一步. 就像是在敲服务器的门。如果服务器开着就会相应你,并激活一个连接。

登入: 在这一阶段,你要告诉服务器你是谁你想和哪个应用交互,如果操作成功的话,你就可以当前zone里的房间列表

加入房间: 一旦进入了房间,你就可以和其他用户和应用的逻辑进行交互。

SmartFoxClient 详细介绍

安装:

在flex3中导入项目Examples/as3/smartfoxchat;

smartfoxchat.mxml是其客户端的主文件。

重要常量信息:

// Connection constants

private const serverIp:String = “211.157.41.204″

private const serverPort:int = 9339

private const serverZone:String = “simpleChat ”

以上都是连接的重要信息,第一个是serverip是你的服务器的IP地址;第二个子是端口号,第三个是Zone名称(zone是服务端对于相关集成的功能模块的单位代称);

常用事件:

package …{

import flash.display.Sprite;

//Establish connection with the server

public function connect():void

{

sfs.connect(serverIp, serverPort)

}

以上是连接服务端的方法,只要知道IP和端口号我们就可以对SFS服务器进行联接了。

sfs = new SmartFoxClient(true)

sfs.debug = false;

// Add event listeners

sfs.addEventListener(SFSEvent.onConnection, onConnection)

以上代码是生成一个客户端SFS通道实例。然后监听联连,一旦客户端与服务联通后客户端就可以收到onConnection的这个事件信息。

sfs.addEventListener(SFSEvent.onLogin, onLogin)

Sfs的事件监听基本上是按smartfoxchat.mxml的顺序在走的,onconnetion之后就会会监听到onlogin,这个事件的用处只在于失败登录后客户端会在debug里看到自定义的一段错误信息。

sfs.addEventListener(SFSEvent.onRoomListUpdate, onRoomListUpdate)

登录成功后第一件是收到一个房间列表,客户端的相关list控件通常会绑定这个列表信息这样就可以显示了。要注意的是这里最后有一个sfs.autoJoin(),如果执行将会自动的进行一个房间如果不执行登录程序将到此结束。

sfs.addEventListener(SFSEvent.onJoinRoom, onJoinRoom)

当客户端执行了sfs.joinRoom(roomId),服务端将会派发onJoinRoom事件客户端,客户端再执行onJoinRoom。

常用实例方法:

代码

sendObject (obj:Object, roomId:int = -1) : void                  //在当前房间发送一个Actionscript对象给其他用户。

setUserVariables (varObj:Object, roomId:int = -1) : void             //设置一个或多个用户变量。

sendPublicMessage (message:String, roomId:int = -1) : void           //发送一个公有消息。

sendPrivateMessage (message:String, recipientId:int, roomId:int = -1) : void   //发送一个私有消息给用户。

joinRoom (newRoom:*, pword:String = “”, isSpectator:Boolean = false, dontLeave:Boolean = false, oldRoom:int = -1) : void //加入一个房间。

leaveRoom (roomId:int) : void //离开一个特定的房间。(断开一个特定房间的连接)。

C:\Program Files\SmartFoxServerPRO_1.6.2\Docs\index.htm

这是SFS的文档主界面,里面有全部的所有SFS的相关资料及所有类的及方法属性的介绍。

市面上其实还有与SFS同类的相关产品,比如adobe的FMS(flash medio server)流媒体服务器可以高效的处理flash流媒体服务(专门针对视音频流不是专门针对游戏)。Java的mina,java的可用于多人实时的服务器。sun game server(sgs)http://www.projectdarkstar.com/。还有python中的twisted框架也可以实现较简单的服务器。

以上说的服务器都是指可以多人实时大部分都支持socket,fms除外

posted on 2010-11-12 10:32 gembin 阅读(1637) 评论(0)  编辑  收藏 所属分类: FlashActionScript3


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(6)

随笔分类(440)

随笔档案(378)

文章档案(6)

新闻档案(1)

相册

收藏夹(9)

Adobe

Android

AS3

Blog-Links

Build

Design Pattern

Eclipse

Favorite Links

Flickr

Game Dev

HBase

Identity Management

IT resources

JEE

Language

OpenID

OSGi

SOA

Version Control

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

free counters