Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
		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);
			}
		}