Пример #1
0
        // 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();
        }
Пример #2
0
        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();
            }
        }
Пример #3
0
        /// <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()));
            }
        }
Пример #4
0
        // 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();
        }
Пример #5
0
        // 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();
        }
Пример #6
0
        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();
        }