FMS有一個非常重要的功能,那就是可以在多臺服務器之間共享流.
利用這一功能,我們可以把源服務器上的流分發到其它的服務器,這些獲得流的服務器同樣可以作爲新的源服務器使用.這個功能有點象FMS集羣.
我們都知道,利用WMP插件可以獲取網上的流媒體地址製作網絡電視臺,其實利用Flash和FMS同樣也可以實現.
在一臺服務器上採集電視信號,然後將採集的流PUB到IP爲127.0.0.1的一個APP(假設是:tvSet)內,假設該流的名稱爲"cctv1",
這樣,連接到該服務器的FP客戶端可以很輕易地獲取該流.但連接數一多,服務器可能就會負擔過重,這時就要開始考慮分流.
分流的方案至少有兩種,一種是利用代理服務器,一種就是我們要說的在多臺服務器之間共享流了.
那怎樣把流分發下去呢?
這第一臺源服務器不用再做任何事情,它只負責接收和PUB電視信號好了,我們另找一臺服務器,在FMS應用程序的main.asc中寫入以下代碼:
//程序啓動時執行
application.onAppStart = function() {
this.myNC= new NetConnection();
this.myNC.onStatus = NC_onStatus;
this.myNC.connect("rtmp://第一臺源服務器的地址/tvSet");
};
function NC_onStatus(info){
switch (info.code) {
case "NetConnection.Connect.Success" :
application.myStream = Stream.get("cctv1");
application.myStream.onStatus = NS_onStatus;
if (application.myStream){
application.myStream.play("cctv1",-2, -1,false,application.myNC);
}
trace("連接成功!");
break;
case "NetConnection.Connect.Failed" :
trace("連接失敗!");
break;
case "NetConnection.Connect.Rejected" :
trace("連接失敗!");
break;
}
}
function NS_onStatus(info){
trace(info.code);
}
這樣新的服務器就獲取了與第一臺源服務器同樣的流.
客戶端再連接的時候就不必再連接第一臺源服務器而連接到新的源服務器上,新的源服務器可以是一臺,也可以是多臺,這樣就將第一臺源服務器的負擔降到極小.