// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseStaticFiles(); app.UseAuthentication(); app.UseStatusCodePages(); // jimu client var host = new ServiceHostClientBuilder(new ContainerBuilder()) .UseLog4netLogger(new LogOptions { EnableConsoleLog = true, EnableFileLog = true, FileLogLevel = LogLevel.Info | LogLevel.Error, }) .UseConsulForDiscovery("127.0.0.1", 8500, "JimuService") .UseDotNettyForTransfer() .UseHttpForTransfer() .UsePollingAddressSelector() .UseServerHealthCheck(1) .SetRemoteCallerRetryTimes(3) .SetDiscoveryAutoUpdateJobInterval(1) .UseToken(() => { var headers = JimuHttpContext.Current.Request.Headers["Authorization"]; return(headers.Any() ? headers[0] : null); }) .Build(); app.UseJimu(host); host.Run(); }
private static void Main(string[] args) { Thread.Sleep(10000); var containerBuilder = new ContainerBuilder(); var builder = new ServiceHostClientBuilder(containerBuilder).UseRpcForTransfer(); using (var host = builder.Build()) { ITransportClient client = host.Container.Resolve <ITransportClientFactory>() .CreateClient(new ServerAddress("127.0.0.1", 8008)); //ITransportClient client = container.Resolve<ITransportClientFactory>() // .DecorationFactory(container.Resolve<ISerializer>()) // .CreateClient(new ServerAddress("127.0.0.1", 8007)); RemoteCallData sendMessage = new RemoteCallData { ServiceId = "base/fastdfs", Parameters = new Dictionary <string, object> { { "message", 12 }, { "myout", 122 } } }; RemoteCallBackData result = client.SendAsync(sendMessage).Result; Console.Write(result.Result.ToString()); Console.ReadLine(); } }
/// <summary> /// 服务内部调用方法 /// </summary> /// <param name="serverAddress">服务地址</param> /// <param name="sendMessage">请求内容</param> public static async Task <T> InternalCall <T>(List <ServerAddress> service, RemoteCallData sendMessage) { ContainerBuilder containerBuilder = new ContainerBuilder(); Core.Client.IServiceHostClientBuilder builder = new ServiceHostClientBuilder(containerBuilder).UseRpcForTransfer() .UsePollingAddressSelector(BalanceType.RoundRobin); using (Core.IServiceHost host = builder.Build()) { IAddressSelector addressSelector = host.Container.Resolve <IAddressSelector>(); ServerAddress desc = await addressSelector.GetAddressAsync(service); ITransportClient client = host.Container.Resolve <ITransportClientFactory>() .CreateClient(desc); RemoteCallBackData result = client.SendAsync(sendMessage).Result; return(JsonConvert.DeserializeObject <T>(result.Result.ToString())); } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } //app.UseMvc(); var host = new ServiceHostClientBuilder(new Autofac.ContainerBuilder()) .UseLog4netLogger() .UsePollingAddressSelector() .UseDotNettyForTransfer() .UseInServerForDiscovery(new Jimu.DotNettyAddress("127.0.0.1", 8001)) .Build(); app.UseJimu(host); host.Run(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } // start jimu client host; var host = new ServiceHostClientBuilder(new ContainerBuilder()) .UseConsulForDiscovery("127.0.0.1", 8500, "JimuService-") .UseDotNettyForTransfer() .UseHttpForTransfer() .UsePollingAddressSelector() .Build(); app.UseJimu(host); host.Run(); }
static void Main(string[] args) { Console.WriteLine("Hello client!"); var container = new ContainerBuilder(); var host = new ServiceHostClientBuilder(container) .UseLog4netLogger(new LogOptions { EnableConsoleLog = true }) .UsePollingAddressSelector() .UseInServerForDiscovery(new HttpAddress("127.0.0.1", 8007)) .UseHttpForTransfer() .UseToken(() => "token") .UseServiceProxy(new[] { "IServices" }) .Build(); host.Run(); var proxy = host.Container.Resolve <IServiceProxy>(); var echo = proxy.GetService <IEchoService>(); var name = echo.GetEcho("test"); Console.WriteLine("return: " + name); Console.ReadKey(); }