1.幾種常見的多媒體
最常見的多媒體服務有Real公司的RealServer,微軟(Microsoft)公司的Microsoft Media Server和蘋果(Apple)公司的Quicktime Streaming Server。表1列出了這3種多媒體服務器的情況,這3種多媒體服務器主要面向視音頻文件(因其採用流式傳輸技術,也可稱流媒體),提供在不同網絡帶寬條件下的視音頻的播放。
多媒體(流媒體) | 服務器協議 | 客戶端(播放器) | 文件名 | 服務器適用平臺 | 流式傳輸管理 | Web接口 |
RealServer | RTSP | Realplayer系列 | .ram .rm .ra |
Windows系列 | 支持 | 支持 |
Microsoft Media Server | MMS | Media Player | .wma .wmv .asf .asx |
Windows 2000 Server | 支持 | 支持 |
Quicktime Streaming Server | RTP/RTSP | QuickTime Player | .mov .mp3 .mp4 |
Mac、Windows系列 | 支持 | 支持 |
2. Flash的不足
Flash雖然具有交互性和網絡的特點,但是這兩個優點還沒有合而爲一,兩個Flash影片之間仍不能相互通信,Flash的網絡優勢只體現在傳輸上而不是功能上。Flash Communication Server的出現爲Flash技術打開了另一片世界。
爲什麼採用Flash服務器
Flash多媒體服務器的出現使得Flash成爲真正的客戶端軟件,從而可以和Flash Communication Server 建立客戶/服務器(C/S)架構。對視頻和音頻更靈活的支持也使Flash在流媒體方面與其他多媒體服務器相比較而不甚遜色。
有了Flash Communication Server的支持,就可以用Flash來製作共享白板、聊天室、廣播、網絡可視電話及多人網絡遊戲等網絡多媒體,尤其是實時視音頻的引入使Flash的多媒體步入網絡時代。想像一下,和朋友在聊天室裏既可以發送文本信息又能聽到看到是多麼愜意的事情。
Flash Communication Server系統結構
Flash Communication Server MX是Flash專用的多媒體服務器,平臺由兩部分構成:服務器和Flash播放器,即服務器端和客戶端。
服務器端的應用程序在Flash Communication Server上有自己獨立的目錄,存放服務端腳本文件和其他資源。客戶端與服務器通過RTMP協議(Real-Time Message Protocol)相互通信。典型應用如下:Flash客戶端通過RTMP協議與Flash Communication Server建立連接,這樣就在Flash的客戶端與服務器端形成穩定的數據流。當然,通常swf是嵌入在瀏覽器中的,所以也存在Web服務器通過Http協議將Flash客戶端(或瀏覽器端)的請求發送給服務器的過程。
1. 使用的軟件
所謂組件(Component)是將一部分設計好的功能模塊(可包含圖片和腳本)精煉出來,供其他Flash文件或腳本調用,以提高可重用性,其實質仍然是.fla文件。圖2是由Macromedia提供的免費下載的Flash MX通信組件,這些組件包括了基於Flash Communication Serve服務器的基本功能 ,擴展已有的基本組件可實現更復雜的網絡功能。
以目前Flash的最高版本Flash MX介紹開發完整的Flash客戶/服務器應用所用到的軟件工具:
* Flash 6播放器(客戶端)
主要是嵌入到瀏覽器中的Flash播放器,作爲訪問服務器的客戶端程序。
* Flash MX集成開發環境(IDE)
設計編輯客戶端文件,一般需要用到通信組件,形成.swf文件。
* Flash Communication Server MX
服務器端應用程序,包括服務端腳本。
* 文本編輯器,如Dreamwaver
編寫ActionScript服務端腳本.asc文件。ActionScript是類似於Javascript的腳本語言,可以用任何支持編輯Javascript的編輯器來編寫。
2.Flash的客戶/服務器模式的兩種模式
Flash客戶/服務器模式有兩種工作模式,一種是客戶端之間通信,服務器起橋樑的作用,聊天室就工作在這種模式;第二種,各個客戶端是獨立的,它們只和服務器交換信息,在線交互遊戲、在線查詢和視頻廣播等均使用這種模式。
3. RTMP協議
Flash客戶端與服務器端使用RTMP協議通信。RTMP協議默認使用1935端口RTMPT協議,與RTMP協議類似,而RTMPT協議使用80 端口。表2是RTMP協議的具體格式(將在ActionScript中使用)。
協議 服務器名稱 端口 應用程序 實例
rtmp:// www.mydomain.com(空) /mydirectory /groupChatApp/HelpDesk
rtmpt:/ (空) (空) sharedWhiteboardApp /June2003
rtmp: (空) 1234 /chatApp /room_name
創建應用實例
下面從一個簡單的實例說明Flash Communication Server的用法。
1.創建服務器端應用
假定Flash Communication Server MX安裝路徑爲“C:/Program Files/Macromedia/Flash Communication Server MX”。
安裝路徑下的applications目錄用來存放服務器端應用。在applications目錄下新建名爲testapp的目錄,並用文本編輯器(也可用Windows附帶的記事本)在此目錄下創建文件main.asc。
ASC即ActionScript for Communications,是Flash Communication Server執行使用的ActionScript的服務器端腳本文件,一般只需要加入下面一行語句:
load( "components.asc" );
應用啓動時,main.asc文件通知加載所有通信組件的服務器端腳本。
2. 創建客戶端應用
客戶端應用必須在Flash MX環境中製作。
打開Flash MX的安裝目錄下的“Flash MX/First Run/Components/” 文件夾,將通信組件文件“Communication Components.fla”放置在該文件夾中。然後運行Flash MX,在組件面板(Components Panel)中就可以看到通信組件了。
下面的ActionScript語句建立到Flash Communication Server的連接:
conn = new NetConnection();
conn.connect("rtmp://real.macromedia.com/funAndGames");