Ejemplo n.º 1
0
        private void Request(object socketObj)
        {
            var clientSocket = (Socket)socketObj;
            var buffer       = new byte[1024 * 1024];
            var len          = clientSocket.Receive(buffer);
            var json         = Encoding.UTF8.GetString(buffer, 0, len);
            var callObj      = JsonConvert.DeserializeObject <ProxyCallSpec>(json);

            if (types.TryGetValue(callObj.TypeFullName, out Type type))
            {
                var service = serviceProvider.GetService(type);
                if (service != null)
                {
                    var result = type.GetMethod(callObj.MethodName)
                                 .Invoke(service, callObj.Params);
                    Response(clientSocket, ProxyBackSpec.Successful(result));

                    return;
                }
            }

            Response(clientSocket, ProxyBackSpec.Fail());
        }
Ejemplo n.º 2
0
 private void Response(Socket clientSocket, ProxyBackSpec backSpec)
 {
     clientSocket.Send(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(backSpec)));
     clientSocket.Close();
 }