欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Flex與.NET互操作(十):FluorineFx.Net的及時通信應(yīng)用(ApplicationAdapter)(一)

 更新時間:2009年06月15日 20:16:14   作者:  
使用FluorineFx.Net開發(fā)的每一個實時通訊功能應(yīng)用都擁有一個應(yīng)用程序適配器(ApplicationAdapter),用來管理整個實時通訊應(yīng)用的生命周期,以及接受和拒絕客戶端的連接等。
應(yīng)用程序適配器對象也就相當于是一個Flash媒體服務(wù)器應(yīng)用程序的對象。

使用FluorineFx.Net開發(fā)及時通信應(yīng)用,我們可以通過ASP.NET網(wǎng)站來宿主,一個ASP.NET網(wǎng)站可以承載多個實時通訊應(yīng)用程序。這些應(yīng)用程序都存儲ASP.NET網(wǎng)站的根目錄下指定文件夾的根目錄中。如下圖示:

                               

      在開發(fā)FluorineFx的及時通信應(yīng)用的時候,按照FluorineFx的目錄結(jié)構(gòu)配置ASP.NET的站點目錄是非常簡單的,只需要在ASP.NET站點下面建立一個名為apps的目錄,那么FluorineFx就會認為此目錄下的每一個文件夾就表示一個FluorineFx應(yīng)用。

      我們可以通過FluorineFx來開發(fā)及時文字聊天、視頻聊天、視頻錄制、媒體播放程序以及WebGame等類似及時應(yīng)用程序。比如我們需要開發(fā)一個視頻聊天系統(tǒng),OK,那便在ASP.NET站點目錄下建立一個apps目錄,然后在apps下建立一個名為VideoChat的目錄,如下目錄結(jié)構(gòu):

                              

       在Flash或是Flex客戶端,我們就可以使用下面的代碼來連到這個基于FluorineFx的視頻聊天應(yīng)用。

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
{}

      每個應(yīng)用程序都有其自己的應(yīng)用范圍和層次的根源,這和FMS、Red5是一樣的規(guī)律。無論是范圍還是層次,他都有一個唯一的名字(應(yīng)用名、實例名等)來區(qū)分,我們也可以叫他們?yōu)閼?yīng)用程序的實例。這些實例可以是聊天室房間、視頻流以及共享對象等。   

                                 

      這些其實是非常容易理解的,如上圖示的聊天室房間分配,分別有Room1,Room2,Room3三個聊天房間,那么對于VideoChat這個聊天應(yīng)用來說要進行視頻聊天就有三條連接線路,分別是:

      1、http://localhost:1974/VideoChat/Room1

      2、http://localhost:1974/VideoChat/Room2

      3、http://localhost:1974/VideoChat/Room3

      除了聊天室和應(yīng)用的層次外,應(yīng)用程序里還有諸入視頻流、共享對象等。他們可以共同應(yīng)用,也可以為不同的房間分別建立不同的共享對象,如果你要想實現(xiàn)不同房間里的用戶可以相互聊天不想讓別的房間的人看到,OK,此時你就可以為該房間獨立創(chuàng)建一個共享對象來實現(xiàn)。

      當開發(fā)程序需要去連接客戶端,處理服務(wù)端事件、調(diào)用客戶端方法等,就需要自定義一個應(yīng)用程序適配器(ApplicationAdapter),此適配器必須繼承并實現(xiàn) FluorineFx.Messaging.Adapter.ApplicationAdapter。 FluorineFx.Messaging.Adapter.ApplicationAdapter做為一個新的應(yīng)用程序的基類,提供了客戶端與應(yīng)用程序之間通信的接口方法、數(shù)據(jù)流以及共享對象等。它能夠時時處理應(yīng)用程序的啟動、停止、客戶端的連接和斷開。

      在Flash或是Flex客戶端,我們可以通過NetConnectin.call()調(diào)用應(yīng)用程序適配器的方法。如下示例代碼塊:

服務(wù)器端應(yīng)用適配器所定義的代碼:

public class Application : ApplicationAdapter
{
   
public string Echo(string msg)
   {
      
return "Echo: " + msg;
   }
}

Flash/Flex客戶端可以通過以下代碼塊調(diào)用服務(wù)器端的方法:

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中客戶端調(diào)用服務(wù)器端方法和服務(wù)器端呼叫客戶端的方法。

相關(guān)文章

最新評論