Table of Contents

Class QuicClientTransportOptions

Namespace
IceRpc.Transports.Quic
Assembly
IceRpc.Transports.Quic.dll

The options class for configuring QuicClientTransport.

public sealed record QuicClientTransportOptions : QuicTransportOptions, IEquatable<QuicTransportOptions>, IEquatable<QuicClientTransportOptions>
Inheritance
QuicClientTransportOptions
Implements
Inherited Members

Properties

KeepAliveInterval

Gets or sets the interval at which the client sends QUIC PING frames to the server to keep the connection alive.

public TimeSpan KeepAliveInterval { get; set; }

Property Value

TimeSpan

The keep-alive interval. Defaults to 15 seconds. Zero means: use the default value provided by the underlying implementation. InfiniteTimeSpan means: never send PING frames.

Remarks

Unlike the idle timeout, the keep-alive interval is not negotiated during connection establishment. We recommend setting this interval at half the negotiated idle timeout value to keep a healthy connection alive forever - really until it's closed due to inactivity at the RPC level via the InactivityTimeout. This option is a stop-gap: ideally the .NET QUIC implementation would provide a way to automatically send PING frames to keep the connection alive based on the negotiated idle timeout. See https://github.com/microsoft/msquic/issues/3880.

LocalNetworkAddress

Gets or sets the address and port represented by a .NET IPEndPoint to use for a client QUIC connection. If specified the client QUIC connection will bind to this address and port before connection establishment.

public IPEndPoint? LocalNetworkAddress { get; set; }

Property Value

IPEndPoint

The address and port to bind to. Defaults to null.