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 是專門(mén)為Adobe Flash設(shè)計(jì)的跨平臺(tái)socket服務(wù)器,讓開(kāi)發(fā)者高效地開(kāi)發(fā)多人應(yīng)用及游戲. 該服務(wù)器主要用來(lái)創(chuàng)建多玩家游戲。并提供強(qiáng)大的制作工具,各種回合制游戲和實(shí)時(shí)游戲都可以勝任。 SmartFoxServer 支持的播放器從Flash player6版到最新的Flash Player 9,并提供豐富的Actionscript 1.0, 2.0 and 3.0 APIs,同時(shí)也支持 Flex Builder 2 and 3. 該產(chǎn)品帶有詳細(xì)的幫助文檔, 大約 35 個(gè)帶源代碼的示例 還有強(qiáng)大的遠(yuǎn)程管理工具. 本入門(mén)假定你會(huì)基本的flex3開(kāi)發(fā)知識(shí)。

          SFS簡(jiǎn)介快速 可靠:

          SmartFoxServer 是基于高效和可升級(jí)的結(jié)構(gòu),可以在單CPU服務(wù)器機(jī)子上處理數(shù)千的客戶端. 是有名的平民的服務(wù)器,最低支持P2-350Mhz。很多公司和游戲機(jī)構(gòu)都已經(jīng)使用 SmartFoxServer 開(kāi)發(fā)出了很多高質(zhì)量的在線多玩家應(yīng)用及游戲。比如Club Penguin

          高制作能力:

          SmartFoxServer 帶有一套支持Actionscript 1.0, 2.0 和 Actionscript 3.0 的APIs 他們都是從flash核心對(duì)象擴(kuò)展出來(lái)的新功能,可以讓開(kāi)發(fā)者簡(jiǎn)單快速地開(kāi)發(fā)多玩家應(yīng)用.

          擴(kuò)展性:

          SmartFoxServer 可以使用Actionscript, Javascript, Python and Java進(jìn)行服務(wù)器端的擴(kuò)展. 自定義服務(wù)器端擴(kuò)展,可以執(zhí)行復(fù)雜的應(yīng)用,游戲邏輯,高級(jí)用戶,房間管理,及服務(wù)器新行為,等等 另外。

          跨平臺(tái)性:

          SmartFoxServer 可以運(yùn)行在任何系統(tǒng)上: 因?yàn)镾martFoxServer 是100%的純 Java 開(kāi)發(fā)的應(yīng)用,它可以運(yùn)行在任何平臺(tái)上,如:Windows (NT/2K/XP/2003), Linux, MacOS X (10.4 or higher), Solaris 等等.

          強(qiáng)大的附加軟件:

          SmartFoxServer 帶有強(qiáng)大的附加軟件來(lái)擴(kuò)展其功能:

          BlueBox:

          讓玩家避開(kāi)網(wǎng)絡(luò)限制(防火墻, 代理) 來(lái)進(jìn)行多玩家游戲,而不犧牲連接速度. 因?yàn)?API 會(huì)自動(dòng)在”幕后“選擇最好的連接系統(tǒng)。

          RedBox:

          免費(fèi)開(kāi)源的附加軟件,使在SmartFoxServer的框架中集成了音頻/視頻流的能力(red5), 并簡(jiǎn)化了 A/V應(yīng)用的開(kāi)發(fā)難度。

          什么是SFS客戶端的API?

          Sfs已經(jīng)為你做好了基本的客戶端網(wǎng)絡(luò)通信通道,這個(gè)通道可以聯(lián)通服務(wù)端的相關(guān)功能模塊來(lái)實(shí)現(xiàn)相關(guān)功能。比如用戶登錄/房間登陸/用戶信息廣播/更新用戶房間信息等等。你只調(diào)用和擴(kuò)展通道中的指定方法即可。

          如何安裝?

          從www.smartfoxserver.com 中找到最新版本的smartfoxserverpro(1.6.2)。然后安裝找到RedBoxClient_AS3.SWC在flex3中導(dǎo)入此客戶端插件。當(dāng)然也可以將flashapi中的AS3中源文件直接拷到自己的項(xiàng)目中。這樣就可以調(diào)用SFS的客戶端的API了。

          基本步湊

          發(fā)起socket連接:這是第一步. 就像是在敲服務(wù)器的門(mén)。如果服務(wù)器開(kāi)著就會(huì)相應(yīng)你,并激活一個(gè)連接。

          登入: 在這一階段,你要告訴服務(wù)器你是誰(shuí)你想和哪個(gè)應(yīng)用交互,如果操作成功的話,你就可以當(dāng)前zone里的房間列表

          加入房間: 一旦進(jìn)入了房間,你就可以和其他用戶和應(yīng)用的邏輯進(jìn)行交互。

          SmartFoxClient 詳細(xì)介紹

          安裝:

          在flex3中導(dǎo)入項(xiàng)目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 ”

          以上都是連接的重要信息,第一個(gè)是serverip是你的服務(wù)器的IP地址;第二個(gè)子是端口號(hào),第三個(gè)是Zone名稱(zone是服務(wù)端對(duì)于相關(guān)集成的功能模塊的單位代稱);

          常用事件:

          package …{

          import flash.display.Sprite;

          //Establish connection with the server

          public function connect():void

          {

          sfs.connect(serverIp, serverPort)

          }

          以上是連接服務(wù)端的方法,只要知道IP和端口號(hào)我們就可以對(duì)SFS服務(wù)器進(jìn)行聯(lián)接了。

          sfs = new SmartFoxClient(true)

          sfs.debug = false;

          // Add event listeners

          sfs.addEventListener(SFSEvent.onConnection, onConnection)

          以上代碼是生成一個(gè)客戶端SFS通道實(shí)例。然后監(jiān)聽(tīng)聯(lián)連,一旦客戶端與服務(wù)聯(lián)通后客戶端就可以收到onConnection的這個(gè)事件信息。

          sfs.addEventListener(SFSEvent.onLogin, onLogin)

          Sfs的事件監(jiān)聽(tīng)基本上是按smartfoxchat.mxml的順序在走的,onconnetion之后就會(huì)會(huì)監(jiān)聽(tīng)到onlogin,這個(gè)事件的用處只在于失敗登錄后客戶端會(huì)在debug里看到自定義的一段錯(cuò)誤信息。

          sfs.addEventListener(SFSEvent.onRoomListUpdate, onRoomListUpdate)

          登錄成功后第一件是收到一個(gè)房間列表,客戶端的相關(guān)list控件通常會(huì)綁定這個(gè)列表信息這樣就可以顯示了。要注意的是這里最后有一個(gè)sfs.autoJoin(),如果執(zhí)行將會(huì)自動(dòng)的進(jìn)行一個(gè)房間如果不執(zhí)行登錄程序?qū)⒌酱私Y(jié)束。

          sfs.addEventListener(SFSEvent.onJoinRoom, onJoinRoom)

          當(dāng)客戶端執(zhí)行了sfs.joinRoom(roomId),服務(wù)端將會(huì)派發(fā)onJoinRoom事件客戶端,客戶端再執(zhí)行onJoinRoom。

          常用實(shí)例方法:

          代碼

          sendObject (obj:Object, roomId:int = -1) : void                  //在當(dāng)前房間發(fā)送一個(gè)Actionscript對(duì)象給其他用戶。

          setUserVariables (varObj:Object, roomId:int = -1) : void             //設(shè)置一個(gè)或多個(gè)用戶變量。

          sendPublicMessage (message:String, roomId:int = -1) : void           //發(fā)送一個(gè)公有消息。

          sendPrivateMessage (message:String, recipientId:int, roomId:int = -1) : void   //發(fā)送一個(gè)私有消息給用戶。

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

          leaveRoom (roomId:int) : void //離開(kāi)一個(gè)特定的房間。(斷開(kāi)一個(gè)特定房間的連接)。

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

          這是SFS的文檔主界面,里面有全部的所有SFS的相關(guān)資料及所有類的及方法屬性的介紹。

          市面上其實(shí)還有與SFS同類的相關(guān)產(chǎn)品,比如adobe的FMS(flash medio server)流媒體服務(wù)器可以高效的處理flash流媒體服務(wù)(專門(mén)針對(duì)視音頻流不是專門(mén)針對(duì)游戲)。Java的mina,java的可用于多人實(shí)時(shí)的服務(wù)器。sun game server(sgs)http://www.projectdarkstar.com/。還有python中的twisted框架也可以實(shí)現(xiàn)較簡(jiǎn)單的服務(wù)器。

          以上說(shuō)的服務(wù)器都是指可以多人實(shí)時(shí)大部分都支持socket,fms除外

          posted on 2010-11-12 10:32 gembin 閱讀(1674) 評(píng)論(0)  編輯  收藏 所屬分類: FlashActionScript3

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(6)

          隨筆分類(440)

          隨筆檔案(378)

          文章檔案(6)

          新聞檔案(1)

          相冊(cè)

          收藏夾(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

          最新隨筆

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          free counters
          主站蜘蛛池模板: 灌南县| 望城县| 都安| 邵阳市| 长垣县| 尤溪县| 景东| 法库县| 遂宁市| 任丘市| 英山县| 靖宇县| 永川市| 沙雅县| 沈阳市| 延津县| 孟津县| 百色市| 雅江县| 会同县| 田林县| 荣昌县| 汝城县| 鹤山市| 咸丰县| 呼玛县| 宁夏| 富阳市| 开原市| 沽源县| 垫江县| 靖西县| 朝阳市| 长寿区| 绍兴县| 蓝田县| 宝坻区| 拜城县| 北辰区| 于都县| 云浮市|