internal static void Push(RtmpConnection connection, IMessage message, IMessageClient messageClient) { if (connection != null) { object response = message; if (message is BinaryMessage) { BinaryMessage binaryMessage = message as BinaryMessage; binaryMessage.Update(messageClient); byte[] binaryContent = binaryMessage.body as byte[]; //byte[] destClientBinaryId = messageClient.GetBinaryId(); //Array.Copy(destClientBinaryId, 0, binaryContent, binaryMessage.PatternPosition, destClientBinaryId.Length); RawBinary result = new RawBinary(binaryContent); response = result; } else { //This should be a clone of the original message message.SetHeader(MessageBase.DestinationClientIdHeader, messageClient.ClientId); message.clientId = messageClient.ClientId; } RtmpChannel channel = connection.GetChannel(3); FlexInvoke reply = new FlexInvoke(); Call call = new Call("receive", new object[] { response }); reply.ServiceCall = call; //reply.Cmd = "receive"; //reply.Response = response; reply.InvokeId = connection.InvokeId; channel.Write(reply); } }
internal static void Push(RtmpConnection connection, IMessage message, IMessageClient messageClient) { if (connection != null) { object obj2 = message; if (message is BinaryMessage) { BinaryMessage message2 = message as BinaryMessage; message2.Update(messageClient); byte[] body = message2.body as byte[]; RawBinary binary = new RawBinary(body); obj2 = binary; } else { message.SetHeader("DSDstClientId", messageClient.ClientId); message.clientId = messageClient.ClientId; } RtmpChannel channel = connection.GetChannel(3); FlexInvoke invoke = new FlexInvoke { Cmd = "receive", InvokeId = connection.InvokeId, Response = obj2 }; channel.Write(invoke); } }