private void OnResponse(byte[] data) { bool recvSucc = false; byte[] respData = null; string method = string.Empty; string errMsg = string.Empty; if (data != null && data.Length > 0) { Packet.Response resp = DataTranslater.Deserialize <Packet.Response>(data); method = resp.method; respData = resp.return_data; errMsg = resp.error; recvSucc = !string.IsNullOrEmpty(resp.method) && resp.invoke; } Delegate callback = GetResponseCallback(method); if (callback != null) { ResponseHandlerDel respCompletion = callback as ResponseHandlerDel; if (respCompletion != null) { respCompletion(recvSucc, respData, errMsg); } } }
public void RequestAsync(string method, byte[] reqData, ResponseHandlerDel responseHandler) { Packet.Request req = new Packet.Request() { session = SessionId, method = method, param_data = reqData }; byte[] data = DataTranslater.Serialize(req); BookRequest(method, responseHandler); _connection.SendAsync(MsgType.REQ, data, delegate(bool succ, string msg) { if (succ) { Trace.WriteLine(string.Format("Request {0} success.", method)); } else { RemoveBookedRequest(method); responseHandler(false, null, msg); } }); }