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()); }
private void Response(Socket clientSocket, ProxyBackSpec backSpec) { clientSocket.Send(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(backSpec))); clientSocket.Close(); }