Beispiel #1
0
        static async Task Main(string[] args)
        {
            var host = new HostBuilder()
                       .ConfigureServices((context, services) =>
            {
                services.Configure <GrpcClientOptions>("grpc", i =>
                {
                    i.Host = "localhost";
                    i.Port = 50001;
                });
                services.AddNGrpcClient();
                services.AddNClientContract <IService>("grpc");

                services.Configure <RabbitMQClientOptions>("mq", i => { i.CopyFrom(Helper.GetMQOptions()); });

                services.AddNRabbitMQClient();

                services.AddHostedService <H>();
            })
                       .Build();

            await host.RunAsync();

            Console.WriteLine("end");
            Console.Read();
        }
Beispiel #2
0
        private static async Task RunRabbitMQAsync()
        {
            var host = new HostBuilder()
                       .ConfigureServices((context, services) =>
            {
                //set single target by DI.
                services.AddNetRpcRabbitMQService(i => i.CopyFrom(Helper.GetMQOptions()));

                services.AddNetRpcGrpcGateway <IService>(o =>
                {
                    o.Host = "localhost";
                    o.Port = 50001;
                });
                services.AddNetRpcGrpcGateway <IService2>();

                //set different target point.
                //var p1 = NetRpcManager.CreateClientProxy<IService>(new Channel("localhost", 50001, ChannelCredentials.Insecure)).Proxy;
                //var p2 = NetRpcManager.CreateClientProxy<IService2>(new Channel("localhost2", 50001, ChannelCredentials.Insecure)).Proxy;
                //services.AddNetRpcContractSingleton(typeof(IService), p1);
                //services.AddNetRpcContractSingleton(typeof(IService2), p2);
            })
                       .Build();

            await host.RunAsync();
        }
Beispiel #3
0
        static async Task Main(string[] args)
        {
            Console.WriteLine("---- MQ test ----");
            var mqOptions = Helper.GetMQOptions();

            _c1 = NManager.CreateClientProxy <IService>(mqOptions);
            _c2 = NManager.CreateClientProxy <IService2>(mqOptions);
            await TestAsync();

            Console.WriteLine("---- Http test ----");
            var httpOptions = new HttpClientOptions {
                ApiUrl = "http://localhost:5000", SignalRHubUrl = "http://localhost:5000/callback"
            };

            _c1 = NetRpc.Http.Client.NManager.CreateClientProxy <IService>(httpOptions);
            _c2 = NetRpc.Http.Client.NManager.CreateClientProxy <IService2>(httpOptions);
            await TestAsync();

            Console.WriteLine("---- Grpc test ----");
            GrpcClientOptions grpcOpt = new GrpcClientOptions {
                Host = "localhost", Port = 50000
            };

            _c1 = NetRpc.Grpc.NManager.CreateClientProxy <IService>(grpcOpt);
            _c2 = NetRpc.Grpc.NManager.CreateClientProxy <IService2>(grpcOpt);
            await TestAsync();

            Console.WriteLine("---- end ----");
            Console.Read();
        }
Beispiel #4
0
        private static async Task RabbitMQ()
        {
            //RabbitMQ
            Console.WriteLine("\r\n--------------- Client RabbitMQ ---------------");
            var services = new ServiceCollection();

            services.AddNClientContract <IServiceAsync>();
            services.AddNClientContract <IService>();
            services.AddNRabbitMQClient(o => o.CopyFrom(Helper.GetMQOptions()));
            var sp = services.BuildServiceProvider();

            _clientProxy                   = sp.GetService <IClientProxy <IService> >();
            _clientProxy.Connected        += (_, _) => Console.WriteLine("[event] Connected");
            _clientProxy.DisConnected     += (_, _) => Console.WriteLine("[event] DisConnected");
            _clientProxy.ExceptionInvoked += (_, _) => Console.WriteLine("[event] ExceptionInvoked");

            //Heartbeat
            _clientProxy.HeartbeatAsync += (s, e) =>
            {
                Console.WriteLine("[event] Heartbeat");
                ((IService)((IClientProxy)s).Proxy).Hearbeat();
                return(Task.CompletedTask);
            };
            //clientProxy.StartHeartbeat(true);

            _proxy      = _clientProxy.Proxy;
            _proxyAsync = sp.GetService <IClientProxy <IServiceAsync> >() !.Proxy;
            RunTest();
            await RunTestAsync();
        }
Beispiel #5
0
        private static async Task Main(string[] args)
        {
            ServiceProvider sp;
            var             services = new ServiceCollection();

            services.AddNClientContract <IServiceAsync>();
            services.AddNRabbitMQClient(o => o.CopyFrom(Helper.GetMQOptions()));
            sp = services.BuildServiceProvider();
            var proxy = sp.GetService <IServiceAsync>();

            for (var i = 0; i < 10; i++)
            {
                var i1 = i;
                Task.Run(async() =>
                {
                    Console.WriteLine($"Send {i1}");
                    await proxy.CallAsync(async p => Console.WriteLine(p), i1.ToString());
                });
            }

            //for (int i = 0; i < 10; i++)
            //{
            //    using (var stream = File.Open(Helper.GetTestFilePath(), FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            //        await proxy.PostAsync(i.ToString(), stream);
            //    Console.WriteLine($"post {i}");
            //}

            Console.WriteLine("Send end");
            Console.Read();
        }
Beispiel #6
0
        private static async Task Main(string[] args)
        {
            var h = Host.CreateDefaultBuilder(null)
                    .ConfigureWebHostDefaults(builder =>
            {
                builder.ConfigureKestrel((context, options) =>
                {
                    options.ListenAnyIP(5101);
                    options.ListenAnyIP(50001, listenOptions => listenOptions.Protocols = HttpProtocols.Http2);
                })
                .ConfigureServices(services =>
                {
                    services.AddCors();
                    services.AddSignalR();
                    services.AddNSwagger();
                    services.AddNHttpService();
                    services.AddNGrpcService();

                    services.AddNRabbitMQService(i => i.CopyFrom(Helper.GetMQOptions()));
                    services.AddNServiceContract <IService, Service>(ServiceLifetime.Scoped);

                    services.Configure <GrpcClientOptions>("grpc1", i => { i.Url = "http://localhost:50002"; });
                    services.Configure <GrpcClientOptions>("grpc2", i => { i.Url = "http://localhost:50003"; });
                    services.AddNGrpcClient(null, null, ServiceLifetime.Scoped);

                    services.Configure <ServiceSwaggerOptions>(i => i.HostPath         = "http://localhost:5101/swagger");
                    services.Configure <ClientSwaggerOptions>("grpc1", i => i.HostPath = "http://localhost:5102/swagger");
                    services.Configure <ClientSwaggerOptions>("grpc2", i => i.HostPath = "http://localhost:5103/swagger");

                    services.AddNJaeger(i =>
                    {
                        i.Host        = "m.k8s.yx.com";
                        i.Port        = 36831;
                        i.ServiceName = "Service";
                    }, i => { i.LogActionInfoMaxLength = 1000; });
                })
                .Configure(app =>
                {
                    app.UseCors(set =>
                    {
                        set.SetIsOriginAllowed(origin => true)
                        .AllowAnyHeader()
                        .AllowAnyMethod()
                        .AllowCredentials();
                    });
                    app.UseRouting();
                    app.UseEndpoints(endpoints => { endpoints.MapHub <CallbackHub>("/callback"); });
                    app.UseNSwagger();
                    app.UseNHttp();
                    app.UseNGrpc();
                })
                .ConfigureLogging(logging => { logging.AddConsole(); });
            }).Build();

            await h.RunAsync();
        }
Beispiel #7
0
        static async Task Main(string[] args)
        {
            var host = NManager.CreateHost(Helper.GetMQOptions(),
                                           null,
                                           new ContractParam <IServiceAsync, ServiceAsync>());

            Console.WriteLine("Service Opened.");
            await host.RunAsync();

            Console.Read();
        }
Beispiel #8
0
 static async Task RunAsync()
 {
     var h = new HostBuilder()
             .ConfigureServices((context, services) =>
     {
         services.AddNRabbitMQService(i => { i.CopyFrom(Helper.GetMQOptions()); });
         services.AddNGrpcService(i => i.AddPort("0.0.0.0", 50001));
         services.AddNServiceContract <IService, Service>();
     })
             .Build();
     await h.RunAsync();
 }
Beispiel #9
0
        private static async Task Main(string[] args)
        {
            var mpHost = new HostBuilder()
                         .ConfigureServices((_, services) =>
            {
                services.AddNRabbitMQService(i => i.CopyFrom(Helper.GetMQOptions()));
                services.AddNServiceContract <IServiceAsync, ServiceAsync>();
            })
                         .Build();

            Console.WriteLine("Service Opened.");
            await mpHost.RunAsync();
        }
Beispiel #10
0
        private static async Task RabbitMQ()
        {
            //RabbitMQ
            Console.WriteLine("\r\n--------------- Client RabbitMQ ---------------");
            var services = new ServiceCollection();

            services.AddNClientContract <IServiceAsync>();
            services.AddNClientContract <IService2Async>();
            services.AddNRabbitMQClient(o => o.CopyFrom(Helper.GetMQOptions()));
            var sp = services.BuildServiceProvider();

            _c1 = sp.GetService <IClientProxy <IServiceAsync> >();
            _c2 = sp.GetService <IClientProxy <IService2Async> >();
            await TestAsync();
        }
Beispiel #11
0
        private static async Task Main(string[] args)
        {
            var h = new HostBuilder()
                    .ConfigureServices((context, services) =>
            {
                services.AddOptions();
                services.AddHostedService <MyHost>();
                services.Configure <RabbitMQClientOptions>("mq", i => i.CopyFrom(Helper.GetMQOptions()));
                services.Configure <GrpcClientOptions>("grpc", i => { i.Url = "http://localhost:50001"; });
                services.AddNRabbitMQClient();
                services.AddNGrpcClient();
            })
                    .ConfigureLogging((context, builder) => { builder.AddConsole(); })
                    .Build();

            await h.RunAsync();
        }
Beispiel #12
0
        static async Task Main(string[] args)
        {
            //rabbitMq
            var mOpt = new MiddlewareOptions();

            mOpt.UseMiddleware <TestGlobalExceptionMiddleware>();
            var mqHost = NetRpcManager.CreateHost(Helper.GetMQOptions(),
                                                  mOpt, new Contract <IService, Service>(), new Contract <IServiceAsync, ServiceAsync>());

            mqHost.RunAsync();

            //grpc
            var grpcHost = NetRpc.Grpc.NetRpcManager.CreateHost(Helper.GetGrpcServiceOptions(),
                                                                null, new Contract <IService, Service>(), new Contract <IServiceAsync, ServiceAsync>());

            grpcHost.RunAsync();
            Console.Read();
        }
Beispiel #13
0
        static async Task Main(string[] args)
        {
            //RabbitMQ
            Console.WriteLine("--- Client RabbitMQ  ---");
            var mqF = new RabbitMQClientConnectionFactoryOptions(Helper.GetMQOptions(), NullLoggerFactory.Instance);

            _clientProxy                   = NManager.CreateClientProxy <IService>(mqF);
            _clientProxy.Connected        += (s, e) => Console.WriteLine("[event] Connected");
            _clientProxy.DisConnected     += (s, e) => Console.WriteLine("[event] DisConnected");
            _clientProxy.ExceptionInvoked += (s, e) => Console.WriteLine("[event] ExceptionInvoked");

            //Heartbeat
            _clientProxy.HeartbeatAsync += (s, e) =>
            {
                Console.WriteLine("[event] Heartbeat");
                ((IService)((IClientProxy)s).Proxy).Hearbeat();
                return(Task.CompletedTask);
            };
            //clientProxy.StartHeartbeat(true);

            _proxy      = _clientProxy.Proxy;
            _proxyAsync = NManager.CreateClientProxy <IServiceAsync>(mqF).Proxy;
            RunTest();
            await RunTestAsync();

            //Grpc
            Console.WriteLine("\r\n--- Client Grpc  ---");
            var grpcF = new GrpcClientConnectionFactoryOptions(
                new GrpcClientOptions {
                Host = "localhost", Port = 50001
            });

            _clientProxy = NetRpc.Grpc.NManager.CreateClientProxy <IService>(grpcF);
            _proxy       = _clientProxy.Proxy;
            _proxyAsync  = NetRpc.Grpc.NManager.CreateClientProxy <IServiceAsync>(grpcF).Proxy;

            RunTest();
            await RunTestAsync();

            Console.WriteLine("Test end.");
            Console.Read();
        }
Beispiel #14
0
        static async Task Main(string[] args)
        {
            var proxy = NManager.CreateClientProxy <IServiceAsync>(Helper.GetMQOptions()).Proxy;

            for (var i = 0; i < 10; i++)
            {
                var i1 = i;
                Task.Run(async() =>
                {
                    Console.WriteLine($"Send {i1}");
                    await proxy.CallAsync(async p => Console.WriteLine(p), i1.ToString());
                });
            }

            //for (int i = 0; i < 10; i++)
            //{
            //    using (var stream = File.Open(Helper.GetTestFilePath(), FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            //        await proxy.PostAsync(i.ToString(), stream);
            //    Console.WriteLine($"post {i}");
            //}

            Console.WriteLine("Send end");
            Console.Read();
        }
Beispiel #15
0
        private static async Task Main(string[] args)
        {
            //rabbitMQ
            var mpHost = new HostBuilder()
                         .ConfigureServices((_, services) =>
            {
                services.AddNRabbitMQService(i => i.CopyFrom(Helper.GetMQOptions()));
                services.AddNServiceContract <IServiceAsync, ServiceAsync>();
                services.AddNServiceContract <IService, Service>();
            })
                         .Build();

            mpHost.RunAsync();

            //grpc
            var grpcHost = Host.CreateDefaultBuilder()
                           .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.ConfigureKestrel((_, options) =>
                {
                    options.ListenAnyIP(50001, listenOptions => listenOptions.Protocols = HttpProtocols.Http2);
                })
                .ConfigureServices((_, services) =>
                {
                    services.AddNGrpcService();
                    services.AddNServiceContract <IServiceAsync, ServiceAsync>();
                    services.AddNServiceContract <IService, Service>();
                }).Configure(app => { app.UseNGrpc(); });
            }).Build();

            grpcHost.RunAsync();

            //http
            var httpHost = Host.CreateDefaultBuilder(args)
                           .ConfigureWebHostDefaults(builder =>
            {
                builder.ConfigureKestrel((_, options) =>
                {
                    options.Limits.MaxRequestBodySize = 10737418240;     //10G
                    options.ListenAnyIP(50002);
                })
                .ConfigureServices(services =>
                {
                    services.AddCors();
                    services.AddSignalR();
                    services.AddNHttpService();
                    services.AddNServiceContract <IServiceAsync, ServiceAsync>();
                    services.AddNServiceContract <IService, Service>();
                })
                .Configure(app =>
                {
                    app.UseCors(set =>
                    {
                        set.SetIsOriginAllowed(_ => true)
                        .AllowAnyHeader()
                        .AllowAnyMethod()
                        .AllowCredentials();
                    });

                    app.UseRouting();
                    app.UseEndpoints(endpoints => { endpoints.MapHub <CallbackHub>("/callback"); });
                    app.UseNHttp();
                });
            }).Build();

            httpHost.RunAsync();

            Console.Read();
        }
Beispiel #16
0
        static async Task Main(string[] args)
        {
            var h = WebHost.CreateDefaultBuilder(null)
                    //.UseDefaultServiceProvider(i =>i.ValidateScopes = false)
                    .ConfigureKestrel(options => { options.ListenAnyIP(5001); })
                    .ConfigureServices(services =>
            {
                services.AddCors();
                services.AddSignalR();
                services.AddNetRpcSwagger();
                services.AddNetRpcHttpService();

                services.AddNetRpcRabbitMQService(i => i.CopyFrom(Helper.GetMQOptions()));
                services.AddNetRpcServiceContract <IService, Service>(ServiceLifetime.Scoped);

                services.Configure <GrpcClientOptions>("grpc1", i =>
                {
                    i.Host = "localhost";
                    i.Port = 50002;
                });
                services.Configure <GrpcClientOptions>("grpc2", i =>
                {
                    i.Host = "localhost";
                    i.Port = 50003;
                });
                services.AddNetRpcGrpcClient(null, null, ServiceLifetime.Scoped);

                services.Configure <ServiceSwaggerOptions>(i => i.HostPath         = "http://localhost:5001/swagger");
                services.Configure <ClientSwaggerOptions>("grpc1", i => i.HostPath = "http://localhost:5002/swagger");
                services.Configure <ClientSwaggerOptions>("grpc2", i => i.HostPath = "http://localhost:5003/swagger");

                services.AddNetRpcJaeger(i =>
                {
                    i.Host        = "jaeger.yx.com";
                    i.Port        = 6831;
                    i.ServiceName = "Service";
                }, i =>
                {
                    i.LogActionInfoMaxLength = 1000;
                });
            })
                    .Configure(app =>
            {
                app.UseCors(set =>
                {
                    set.SetIsOriginAllowed(origin => true)
                    .AllowAnyHeader()
                    .AllowAnyMethod()
                    .AllowCredentials();
                });
                app.UseSignalR(routes => { routes.MapHub <CallbackHub>("/callback"); });
                app.UseNetRpcSwagger();
                app.UseNetRpcHttp();
            })
                    .ConfigureLogging(logging =>
            {
                logging.AddConsole();
            })
                    .Build();

            await h.RunAsync();
        }