StunClientPool constructor
StunClientPool({})
Creates a new STUN client pool
stunServers
- List of STUN servers to use
timeout
- Timeout for STUN requests
healthCheckInterval
- Interval for health checks
Implementation
StunClientPool({
List<({String host, int port})>? stunServers,
this.timeout = defaultTimeout,
this.healthCheckInterval = defaultHealthCheckInterval,
}) {
final servers = stunServers ?? defaultStunServers;
// Initialize the server pool
for (final server in servers) {
_servers.add(
_StunServerInfo(
client: StunClient(
serverHost: server.host,
stunPort: server.port,
timeout: timeout,
),
host: server.host,
port: server.port,
healthScore: 100, // Start with perfect health
lastResponseTime: null,
lastSuccessTime: null,
consecutiveFailures: 0,
),
);
}
// Start periodic health checks
_startHealthChecks();
}