public async Task <T> InvokeAsync <T>(string endpoint, string destination, string method, object[] arguments) { if (objectEncoding != ObjectEncoding.Amf3) { throw new NotSupportedException("Flex RPC requires AMF3 encoding."); } var remotingMessage = new RemotingMessage { ClientId = Guid.NewGuid().ToString("D"), Destination = destination, Operation = method, Body = arguments, Headers = new Dictionary <string, object>() { { FlexMessageHeaders.Endpoint, endpoint }, { FlexMessageHeaders.FlexClientId, ClientId ?? "nil" } } }; var invoke = new InvokeAmf3() { InvokeId = GetNextInvokeId(), MethodCall = new Method(null, new object[] { remotingMessage }) }; var result = await QueueCommandAsTask(invoke, 3, 0); return((T)MiniTypeConverter.ConvertTo(result, typeof(T))); }
internal async Task <T> InvokeAsync <T>(RemotingMessage message) { var invoke = new InvokeAmf3() { InvokeId = GetNextInvokeId(), MethodCall = new Method(null, new object[] { message }) }; var result = await QueueCommandAsTask(invoke, 3, 0); return((T)MiniTypeConverter.ConvertTo(result, typeof(T))); }
internal async Task <AcknowledgeMessageExt> InvokeAckAsync(int invokeId, RemotingMessage message) { InvokeAmf3 invokeAmf3 = new InvokeAmf3(); invokeAmf3.InvokeId = invokeId; invokeAmf3.MethodCall = new Method((string)null, new object[1] { (object)message }, 1 != 0, CallStatus.Request); return(await this.QueueCommandAsTask((Command)invokeAmf3, 3, 0, true)); }
internal async Task <T> InvokeAsync <T>(RemotingMessage message) { InvokeAmf3 invokeAmf3 = new InvokeAmf3(); invokeAmf3.InvokeId = this.GetNextInvokeId(); invokeAmf3.MethodCall = new Method((string)null, new object[1] { (object)message }, 1 != 0, CallStatus.Request); return((T)MiniTypeConverter.ConvertTo((await this.QueueCommandAsTask((Command)invokeAmf3, 3, 0, true)).Body, typeof(T))); }
internal async Task <AcknowledgeMessageExt> InvokeAckAsync(int invokeId, RemotingMessage message) { //TODO: this is very bad //this.invokeId = invokeId; var invoke = new InvokeAmf3 { InvokeId = invokeId, MethodCall = new Method(null, new object[] { message }) }; return(await QueueCommandAsTask(invoke, 3, 0)); }
internal void InvokeResult(int invokeId, AcknowledgeMessageExt message) { if (objectEncoding != ObjectEncoding.Amf3) { throw new NotSupportedException("Flex RPC requires AMF3 encoding."); } var invoke = new InvokeAmf3() { InvokeId = invokeId, MethodCall = new Method("_result", new object[] { message }, true, CallStatus.Result) }; QueueCommandAsTask(invoke, 3, 0); }
internal void InvokeError(int invokeId, ErrorMessage message) { if (this._objectEncoding != ObjectEncoding.Amf3) { throw new NotSupportedException("Flex RPC requires AMF3 encoding."); } InvokeAmf3 invokeAmf3 = new InvokeAmf3(); invokeAmf3.InvokeId = invokeId; invokeAmf3.MethodCall = new Method("_error", new object[1] { (object)message }, 0 != 0, CallStatus.Result); this.QueueCommandAsTask((Command)invokeAmf3, 3, 0); }
internal void InvokeResult(int invokeId, AcknowledgeMessageExt message) { if (_objectEncoding != ObjectEncoding.Amf3) { throw new NotSupportedException("Flex RPC requires AMF3 encoding."); } InvokeAmf3 invokeAmf3 = new InvokeAmf3(); invokeAmf3.InvokeId = invokeId; invokeAmf3.MethodCall = new Method("_result", new object[1] { message }, 1 != 0, CallStatus.Result); QueueCommandAsTask(invokeAmf3, 3, 0); }
internal void InvokeError(int invokeId, ErrorMessage message) { if (objectEncoding != ObjectEncoding.Amf3) { throw new NotSupportedException("Flex RPC requires AMF3 encoding."); } var invoke = new InvokeAmf3 { InvokeId = invokeId, MethodCall = new Method("_error", new object[] { message }, false, CallStatus.Result) }; QueueCommandAsTask(invoke, 3, 0); }
public async Task <T> InvokeAsync <T>(string endpoint, string destination, string method, object[] arguments) { if (this._objectEncoding != ObjectEncoding.Amf3) { throw new NotSupportedException("Flex RPC requires AMF3 encoding."); } RemotingMessage remotingMessage1 = new RemotingMessage(); string clientId = this.ClientId; remotingMessage1.ClientId = clientId; string str1 = destination; remotingMessage1.Destination = str1; string str2 = method; remotingMessage1.Operation = str2; object[] objArray = arguments; remotingMessage1.Body = (object)objArray; remotingMessage1.Headers = new AsObject() { { "DSEndpoint", (object)endpoint }, { "DSId", (object)(this.ClientId ?? "nil") }, { "DSRequestTimeout", (object)60 } }; RemotingMessage remotingMessage2 = remotingMessage1; InvokeAmf3 invokeAmf3 = new InvokeAmf3(); invokeAmf3.InvokeId = this.GetNextInvokeId(); invokeAmf3.MethodCall = new Method((string)null, new object[1] { remotingMessage2 }, 1 != 0, CallStatus.Request); return((T)MiniTypeConverter.ConvertTo((await this.QueueCommandAsTask(invokeAmf3, 3, 0, true)).Body, typeof(T))); }
public async Task <T> InvokeAsync <T>(string endpoint, string destination, string method, object[] arguments) { try { if (_objectEncoding != ObjectEncoding.Amf3) { throw new NotSupportedException("Flex RPC requires AMF3 encoding."); } RemotingMessage remotingMessage = new RemotingMessage() { ClientId = ClientId, Destination = destination, Operation = method, Body = arguments, Headers = new AsObject() { { "DSEndpoint", endpoint }, { "DSId", ClientId ?? "nil" }, { "DSRequestTimeout", 60 } } }; InvokeAmf3 invokeAmf3 = new InvokeAmf3() { InvokeId = GetNextInvokeId(), MethodCall = new Method(null, new object[1] { remotingMessage }, 1 != 0, CallStatus.Request) }; return((T)MiniTypeConverter.ConvertTo((await QueueCommandAsTask(invokeAmf3, 3, 0, true)).Body, typeof(T))); } catch (Exception ex) { Tools.Log(ex.StackTrace); return(default(T)); } }
public void InvokeReceive(string clientId, string subtopic, object body) { var invoke = new InvokeAmf3() { InvokeId = 0, MethodCall = new Method("receive", new object[] { new AsyncMessageExt { Headers = new AsObject { { FlexMessageHeaders.FlexSubtopic, subtopic } }, ClientId = clientId, Body = body, MessageId = Uuid.NewUuid() } }) }; QueueCommandAsTask(invoke, 3, 0); }
public async Task <T> InvokeAsync <T>(string endpoint, string destination, string method, object[] arguments) { if (objectEncoding != ObjectEncoding.Amf3) { throw new NotSupportedException("Flex RPC requires AMF3 encoding."); } var remotingMessage = new RemotingMessage { ClientId = ClientId,//Guid.NewGuid().ToString("D"), Destination = destination, Operation = method, Body = arguments, Headers = new AsObject { { FlexMessageHeaders.Endpoint, endpoint }, { FlexMessageHeaders.FlexClientId, ClientId ?? "nil" }, { FlexMessageHeaders.RequestTimeout, 60 } } }; var invoke = new InvokeAmf3() { InvokeId = GetNextInvokeId(), MethodCall = new Method(null, new object[] { remotingMessage }) }; //HACK Return null if result is "_error" object result; try { result = await QueueCommandAsTask(invoke, 3, 0); } catch (InvocationException x) { throw x; } return((T)MiniTypeConverter.ConvertTo(result, typeof(T))); }
public async Task <T> InvokeAsync <T>(string endpoint, string destination, string method, object[] arguments) { if (this._objectEncoding != ObjectEncoding.Amf3) { throw new NotSupportedException("Flex RPC requires AMF3 encoding."); } RemotingMessage remotingMessage = new RemotingMessage() { ClientId = ClientId, Destination = destination, Operation = method, Body = arguments, Headers = new AsObject() { { "DSEndpoint", (object)endpoint }, { "DSId", (object)(this.ClientId ?? "nil") }, { "DSRequestTimeout", (object)60 } } }; InvokeAmf3 invokeAmf = new InvokeAmf3() { InvokeId = this.GetNextInvokeId() + 536870911, MethodCall = new Method(null, new object[1] { remotingMessage }, 1 != 0, CallStatus.Request) }; return((T)MiniTypeConverter.ConvertTo((await this.QueueCommandAsTask(invokeAmf, 3, 0, true)).Body, typeof(T))); }
internal void InvokeReceive(string clientId, string subtopic, object body) { InvokeAmf3 invokeAmf3_1 = new InvokeAmf3(); invokeAmf3_1.InvokeId = 0; InvokeAmf3 invokeAmf3_2 = invokeAmf3_1; string methodName = "receive"; object[] parameters = new object[1]; int index = 0; AsyncMessageExt asyncMessageExt = new AsyncMessageExt(); asyncMessageExt.Headers = new AsObject() { { "DSSubtopic", (object)subtopic } }; string str1 = clientId; asyncMessageExt.ClientId = str1; object obj = body; asyncMessageExt.Body = obj; string str2 = Uuid.NewUuid(); asyncMessageExt.MessageId = str2; parameters[index] = (object)asyncMessageExt; int num1 = 1; int num2 = 0; Method method = new Method(methodName, parameters, num1 != 0, (CallStatus)num2); invokeAmf3_2.MethodCall = method; this.QueueCommandAsTask((Command)invokeAmf3_1, 3, 0); }