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

OnCommandConnect() private method

private OnCommandConnect ( CommandMessage msg, CancellationToken cancel_token ) : Task
msg CommandMessage
cancel_token System.Threading.CancellationToken
return Task
    private async Task OnCommandConnect(CommandMessage msg, CancellationToken cancel_token)
    {
      objectEncoding = ((int)msg.CommandObject["objectEncoding"])==3 ? 3 : 0;
      clientName     = (string)msg.CommandObject["flashVer"];
      Logger.Debug("connect: objectEncoding {0}, flashVer: {1}", objectEncoding, clientName);
      await SendMessage(2, new SetWindowSizeMessage(this.Now, 0, recvWindowSize), cancel_token);
      await SendMessage(2, new SetPeerBandwidthMessage(this.Now, 0, sendWindowSize, PeerBandwidthLimitType.Hard), cancel_token);
      await SendMessage(2, new UserControlMessage.StreamBeginMessage(this.Now, 0, 0), cancel_token);
      var response = CommandMessage.Create(
        objectEncoding,
        this.Now,
        msg.StreamId,
        "_result",
        msg.TransactionId,
        new AMF.AMFValue(new AMF.AMFObject {
          { "fmsVer",       "FMS/3,5,5,2004" },
          { "capabilities", 31 },
          { "mode",         1 },
        }),
        new AMF.AMFValue(new AMF.AMFObject {
          { "level",          "status" },
          { "code",           "NetConnection.Connect.Success" },
          { "description",    "Connection succeeded" },
          { "data",           new AMF.AMFObject { { "version", "3,5,5,2004" } } },
          { "clientId",       nextClientId++ },
          { "objectEncoding", objectEncoding },
        })
      );
      if (msg.TransactionId!=0) {
        await SendMessage(3, response, cancel_token);
      }
    }