Beispiel #1
0
        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);
            }
              }
        }
Beispiel #2
0
        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);
                }
            }
        }
Beispiel #3
0
 public void SendMessage(DynLinkResult Message)
 {
     DataToSend.Enqueue(Message);
 }
Beispiel #4
0
 public void SendMessage(DynLinkResult Message)
 {
     DataToSend.Enqueue(Message);
 }