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;
}