WriteStatusResponse() публичный Метод

public WriteStatusResponse ( string code, string description ) : void
code string
description string
Результат void
Пример #1
0
        public void Start(Peer peer, uint publisherId, FlowWriter controller)
        {
            if (PublisherId != 0)
            {
                if (controller != null)
                {
                    controller.WriteStatusResponse("Publish.BadName", Name + "is already published");
                }
            }
            PublisherId = publisherId;

            //string error;
            //if (!peer.OnPublish(this, out error))
            //{
            //    if (String.IsNullOrEmpty(error)) error = "Not allowed to publish " + Name;
            //}
            _publisher     = peer;
            _controller    = controller;
            _firstKeyFrame = false;
            foreach (var baseOutStream in OutStreams.OfType <IOutNetStream>())
            {
                baseOutStream.SendPublishNotify();
            }
            if (controller != null)
            {
                controller.WriteStatusResponse("Publish.Start", Name + "is now published");
            }
        }
Пример #2
0
        public void Start(Peer peer, uint publisherId, FlowWriter controller)
        {
            if (PublisherId != 0)
            {
                if (controller != null)
                {
                    controller.WriteStatusResponse("Publish.BadName", Name + "is already published");
                }
            }
            PublisherId = publisherId;

            string error;

            if (!peer.OnPublish(this, out error))
            {
                if (String.IsNullOrEmpty(error))
                {
                    error = "Not allowed to publish " + Name;
                }
            }
            _publisher     = peer;
            _controller    = controller;
            _firstKeyFrame = false;
            foreach (var listener in Listeners)
            {
                listener.Value.StartPublishing(Name);
            }
            Flush();
            if (controller != null)
            {
                controller.WriteStatusResponse("Publish.Start", Name + "is now published");
            }
        }
Пример #3
0
 public Listener AddListener(Peer peer,uint id,FlowWriter writer,bool unbuffered)
 {
     if (Listeners.ContainsKey(id))
         return Listeners[id];
     var listener = new Listener(id, this, writer, unbuffered);
     string error;
     if (peer.OnSubscribe(listener,out error))
     {
         Listeners[id] = listener;
         writer.WriteStatusResponse("Play.Reset", "Playing and resetting " + Name);
         writer.WriteStatusResponse("Play.Start", "Started playing " + Name);
         listener.Init(peer);
         return listener;
     }
     if (string.IsNullOrEmpty(error))
     {
         error = "Not authorized to play " + Name;
     }
     writer.WriteStatusResponse("Play.Failed", error);
     throw new Exception(error);
 }
Пример #4
0
        public Listener AddListener(Peer peer, uint id, FlowWriter writer, bool unbuffered)
        {
            if (Listeners.ContainsKey(id))
            {
                return(Listeners[id]);
            }
            var    listener = new Listener(id, this, writer, unbuffered);
            string error;

            if (peer.OnSubscribe(listener, out error))
            {
                Listeners[id] = listener;
                writer.WriteStatusResponse("Play.Reset", "Playing and resetting " + Name);
                writer.WriteStatusResponse("Play.Start", "Started playing " + Name);
                listener.Init(peer);
                return(listener);
            }
            if (string.IsNullOrEmpty(error))
            {
                error = "Not authorized to play " + Name;
            }
            writer.WriteStatusResponse("Play.Failed", error);
            throw new Exception(error);
        }
Пример #5
0
 public override bool Stop()
 {
     if (PublisherId == 0)
     {
         return(true);
     }
     foreach (var baseOutStream in OutStreams.OfType <IOutNetStream>())
     {
         baseOutStream.SendUnpublishNotify();
     }
     _controller.WriteStatusResponse("Unpublish.Success", Name + " is now unpublished");
     Flush();
     PublisherId = 0;
     _publisher  = null;
     return(true);
 }
Пример #6
0
        public override InNetRtmfpStream PublishStream(Peer peer, uint id, string name, string type, FlowWriter writer)
        {
            var session = writer.Band as Session;

            if (!session.Application.StreamsManager.StreamNameAvailable(name))
            {
                WARN(
                    "Stream name {0} already occupied and application doesn't allow duplicated inbound network streams",
                    name);
                writer.WriteStatusResponse("Publish.BadName", name + "is not available");
                return(null);
            }
            var pInNetRtmpStream = new InNetRtmfpStream(session, session.Application.StreamsManager, name);

            session.Application.OnPublish(this, pInNetRtmpStream, type);
            pInNetRtmpStream.Start(peer, id, writer);
            return(pInNetRtmpStream);
        }
Пример #7
0
 public void ClosePublisher(string code, string description)
 {
     if (PublisherId == 0)
     {
         return;
     }
     if (_controller != null)
     {
         if (!string.IsNullOrEmpty(code))
         {
             _controller.WriteStatusResponse(code, description);
         }
         _controller.WriteAMFMessage("close");
     }
     else
     {
         Logger.WARN("Publisher {0} has no controller to close it", PublisherId);
     }
 }
Пример #8
0
 public void Init(/*Peer client*/)
 {
     Writer.WriteStatusResponse("Play.Reset", "Playing and resetting " + Name);
     Writer.WriteStatusResponse("Play.Start", "Started playing " + Name);
     if (_audioWriter == null)
     {
         _audioWriter = Writer.NewStreamWriter(0x08);
         //_audioWriter.Client = client;
     }
     else
     {
         Logger.WARN("Listener {0} audio track has already been initialized", Id);
     }
     if (_videoWriter == null)
     {
         _videoWriter = Writer.NewStreamWriter(0x09);
         //_videoWriter.Client = client;
     }
     else
     {
         Logger.WARN("Listener {0} video track has already been initialized", Id);
     }
     WriteBounds();
 }
Пример #9
0
 public void Start(Peer peer, uint publisherId, FlowWriter controller)
 {
     if (PublisherId != 0)
     {
         if (controller != null)
         {
             controller.WriteStatusResponse("Publish.BadName", Name + "is already published");
         }
     }
     PublisherId = publisherId;
    
     string error;
     if (!peer.OnPublish(this, out error))
     {
         if (String.IsNullOrEmpty(error)) error = "Not allowed to publish " + Name;
     }
     _publisher = peer;
     _controller = controller;
     _firstKeyFrame = false;
     foreach (var listener in Listeners)
     {
         listener.Value.StartPublishing(Name);
     }
     Flush();
     if (controller != null)
     {
         controller.WriteStatusResponse("Publish.Start", Name + "is now published");
     }
 }
Пример #10
0
 public void StartPublishing(string name)
 {
     _writer.WriteStatusResponse("Play.PublishNotify", name + " is now published");
     _firstKeyFrame = false;
 }
Пример #11
0
 public override InNetRtmfpStream PublishStream(Peer peer, uint id, string name, string type, FlowWriter writer)
 {
     var session = writer.Band as Session;
     if (!session.Application.StreamsManager.StreamNameAvailable(name))
     {
         WARN(
             "Stream name {0} already occupied and application doesn't allow duplicated inbound network streams",
             name);
         writer.WriteStatusResponse("Publish.BadName", name + "is not available");
         return null;
     }
     var pInNetRtmpStream = new InNetRtmfpStream(session, session.Application.StreamsManager, name);
     session.Application.OnPublish(this, pInNetRtmpStream, type);
     pInNetRtmpStream.Start(peer, id, writer);
     return pInNetRtmpStream;
 }