Sep 11

在多台FMS服务器之间共享流

 

有的时候,我们需要在在多台FMS服务器之间共享流(比如对视频聊天进行监控而又不想对客户端的程序做大的调整),下面是两种方法:

 

1、主动式:

 

一台服务器正常地接收流,另一台服务器主动的连接到这台服务器上来获取流,在这个过程中,新的服务器处于主动获取的状态。

 

示例代码:

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("cctv");
   application.myStream.onStatus = NS_onStatus;
   if (application.myStream) {
    application.myStream.play("cctv",-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);
}

这样新的服务器就获取了与第一台服务器同样的流。

客户端连接的时候就不必再连接第一台服务器,而是直接连接到新的服务器上新的服务器可以是一台,也可以是多台。

 

2、被动式:

 

FMS3新增了一个非常有用的侦听事件,那就是application.onPublish,利用这个事件,可以很方便的把刚刚发布到服务器上的流再转发到其它服务器上,在这个过程中,新的服务器处于被动接收的状态。

 

示例代码:

 

application.onPublish = function(client, myStream) {
             nc = new NetConnection();
              nc.connect("rtmp://10.0.199.5/multiPointPub");
               ns = new NetStream(nc);
               ns.attach(myStream);
               ns.publish(myStream.name,"live");
};

 

(本站原创,转载请注明出处:www.fmser.cn

相关文章

日志评论

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。