應用程式配接器對象也就相當於是一個Flash媒體伺服器應用程式的對象。
使用FluorineFx.Net開發及時通訊應用,我們可以通過ASP.NET網站來宿主,一個ASP.NET網站可以承載多個即時通訊應用程式。這些應用程式都儲存ASP.NET網站的根目錄下指定檔案夾的根目錄中。如示:
在開發FluorineFx的及時通訊應用的時候,按照FluorineFx的目錄結構配置ASP.NET的網站目錄是非常簡單的,只需要在ASP.NET網站下面建立一個名為apps的目錄,那麼FluorineFx就會認為此目錄下的每一個檔案夾就表示一個FluorineFx應用。
我們可以通過FluorineFx來開發及時文字交談、視訊交談、視頻錄製、媒體播放程式以及WebGame等類似及時應用程式。比如我們需要開發一個視訊交談系統,OK,那便在ASP.NET網站目錄下建立一個apps目錄,然後在apps下建立一個名為VideoChat的目錄,如下目錄結構:
在Flash或是Flex用戶端,我們就可以使用下面的代碼來連到這個基於FluorineFx的視訊交談應用。
private var ns:NetConnection;
public function ConnectionFxApp():void
{
ns = new NetConnection();
ns.connect("rtmp://localhost:1974/VideoChat");
ns.client=this;
ns.addEventListener(NetStatusEvent.NET_STATUS,onNetStatusHandler);
}
private function onNetStatusHandler(evt:NetStatusEvent):void
{}
每個應用程式都有其自己的應用範圍和層次的根源,這和FMS、Red5是一樣的規律。無論是範圍還是層次,他都有一個唯一的名字(應用程式名稱、執行個體名等)來區分,我們也可以叫他們為應用程式的執行個體。這些執行個體可以是聊天室房間、視頻流以及共用對象等。
這些其實是非常容易理解的,如示的聊天室房間分配,分別有Room1,Room2,Room3三個聊天房間,那麼對於VideoChat這個聊天應用來說要進行視訊交談就有三條連接線路,分別是:
1、http://localhost:1974/VideoChat/Room1
2、http://localhost:1974/VideoChat/Room2
3、http://localhost:1974/VideoChat/Room3
除了聊天室和應用的層次外,應用程式裡還有諸入視頻流、共用對象等。他們可以共同應用,也可以為不同的房間分別建立不同的共用對象,如果你要想實現不同房間裡的使用者可以相互聊天不想讓別的房間的人看到,OK,此時你就可以為該房間獨立建立一個共用對象來實現。
當開發程式需要去串連用戶端,處理服務端事件、調用用戶端方法等,就需要自訂一個應用程式配接器(ApplicationAdapter),此適配器必須繼承並實現 FluorineFx.Messaging.Adapter.ApplicationAdapter。 FluorineFx.Messaging.Adapter.ApplicationAdapter做為一個新的應用程式的基類,提供了用戶端與應用程式之間通訊的介面方法、資料流以及共用對象等。它能夠時時處理應用程式的啟動、停止、用戶端的串連和斷開。
在Flash或是Flex用戶端,我們可以通過NetConnectin.call()調用應用程式配接器的方法。如下範例程式碼塊:
伺服器端應用適配器所定義的代碼:
public class Application : ApplicationAdapter
{
public string Echo(string msg)
{
return "Echo: " + msg;
}
}
Flash/Flex用戶端可以通過以下代碼塊調用伺服器端的方法:
private var ns:NetConnection;
private function CallServerMethod():void
{
nc = new NetConnection();
nc.connect("rtmp://localhost:1974/application");
nc.onResult = function(obj)
{
trace("The result is " + obj);
}
nc.call("Echo", nc, "Hello");
}
本文就先介紹到這裡,下篇將接著本篇介紹FluorineFx.NET中用戶端調用伺服器端方法和伺服器端呼叫用戶端的方法。