public void RunCommunicationLoop() { while (!ClientStream.DataAvailable && DataToSend.Count == 0) System.Threading.Thread.Sleep(100); if (DataToSend.Count != 0) { var actualData = DataToSend.Dequeue(); SendAllToClient(new JavaScriptSerializer().Serialize(actualData), true); } else if (ClientStream.DataAvailable) { var requ = ReadAllFromClient(true); DynLinkRequest request = (DynLinkRequest)new JavaScriptSerializer().Deserialize(requ, typeof(DynLinkRequest)); //Handle request if (request != null) { Type handler = CallHandlerTypes[request.Domain]; object result; if (request.Parameters != null) { result = handler.GetMethod(request.Action).Invoke(null, request.Parameters); } else { result = handler.GetMethod(request.Action).Invoke(null, new object[0]); } var answer = new DynLinkResult() { Id = request.Id, Result = result }; var answerString = new JavaScriptSerializer().Serialize(answer); SendAllToClient(answerString, true); } } }
public void RunCommunicationLoop() { while (!ClientStream.DataAvailable && DataToSend.Count == 0) { System.Threading.Thread.Sleep(100); } if (DataToSend.Count != 0) { var actualData = DataToSend.Dequeue(); SendAllToClient(new JavaScriptSerializer().Serialize(actualData), true); } else if (ClientStream.DataAvailable) { var requ = ReadAllFromClient(true); DynLinkRequest request = (DynLinkRequest) new JavaScriptSerializer().Deserialize(requ, typeof(DynLinkRequest)); //Handle request if (request != null) { Type handler = CallHandlerTypes[request.Domain]; object result; if (request.Parameters != null) { result = handler.GetMethod(request.Action).Invoke(null, request.Parameters); } else { result = handler.GetMethod(request.Action).Invoke(null, new object[0]); } var answer = new DynLinkResult() { Id = request.Id, Result = result }; var answerString = new JavaScriptSerializer().Serialize(answer); SendAllToClient(answerString, true); } } }
public void SendMessage(DynLinkResult Message) { DataToSend.Enqueue(Message); }