/// <inheritdoc/> public void Start(EndpointVisibility type, EndpointConfiguration configuration, IEnumerable <Service> services) { try { var keepAliveTime = new grpc.ChannelOption("grpc.keepalive_time", 1000); var keepAliveTimeout = new grpc.ChannelOption("grpc.keepalive_timeout_ms", 500); var keepAliveWithoutCalls = new grpc.ChannelOption("grpc.keepalive_permit_without_calls", 1); _server = new grpc::Server(new[] { keepAliveTime, keepAliveTimeout, keepAliveWithoutCalls }) { Ports = { new grpc.ServerPort("0.0.0.0", configuration.Port, grpc::SslServerCredentials.Insecure) } }; _server .Ports .ForEach(_ => _logger.Information($"Starting {type} host on {_.Host}" + (_.Port > 0 ? $" for port {_.Port}" : string.Empty))); services.ForEach(_ => _server.Services.Add(_.ServerDefinition)); _server.Start(); } catch (Exception ex) { _logger.Error(ex, $"Couldn't start {type} host"); } }
public void Constructor_RejectsDuplicateOptions() { var options = new ChannelOption[] { new ChannelOption(ChannelOptions.PrimaryUserAgentString, "ABC"), new ChannelOption(ChannelOptions.PrimaryUserAgentString, "XYZ") }; Assert.Throws(typeof(ArgumentException), () => new Channel("127.0.0.1", ChannelCredentials.Insecure, options)); }
public void StringOption() { var option = new ChannelOption("somename", "ABCDEF"); Assert.AreEqual(ChannelOption.OptionType.String, option.Type); Assert.AreEqual("somename", option.Name); Assert.AreEqual("ABCDEF", option.StringValue); Assert.Throws(typeof(InvalidOperationException), () => { var s = option.IntValue; }); }