PeerCastStation.FLV.RTMP.RTMPSourceConnection.OnCommandPublish C# (CSharp) Method

OnCommandPublish() private method

private OnCommandPublish ( CommandMessage msg, CancellationToken cancel_token ) : Task
msg CommandMessage
cancel_token System.Threading.CancellationToken
return Task
    private async Task OnCommandPublish(CommandMessage msg, CancellationToken cancel_token)
    {
      var name = (string)msg.Arguments[0];
      var type = (string)msg.Arguments[1];
      Logger.Debug("publish: name {0}, type: {1}", name, type);
      await SendMessage(2, new UserControlMessage.StreamBeginMessage(this.Now, 0, msg.StreamId), cancel_token);
      var status = CommandMessage.Create(
        objectEncoding,
        this.Now,
        msg.StreamId,
        "onStatus",
        0,
        null,
        new AMF.AMFValue(new AMF.AMFObject {
          { "level",       "status" },
          { "code",        "NetStream.Publish.Start" },
          { "description", name },
        })
      );
      await SendMessage(3, status, cancel_token);
      var result = CommandMessage.Create(
        objectEncoding,
        this.Now,
        msg.StreamId,
        "_result",
        msg.TransactionId,
        null
      );
      if (msg.TransactionId!=0) {
        await SendMessage(3, result, cancel_token);
      }
      this.state = ConnectionState.Receiving;
    }