copyWith method

WebSocketConfig copyWith({
  1. String? url,
  2. Object? protocols = _unset,
  3. Object? headers = _unset,
  4. Object? pingInterval = _unset,
  5. Duration? connectionTimeout,
  6. Duration? reconnectDelay,
  7. int? maxReconnectAttempts,
  8. bool? autoReconnect,
  9. bool? enableLogging,
  10. bool? enableHeartbeat,
  11. Duration? heartbeatInterval,
  12. Duration? heartbeatTimeout,
  13. String? heartbeatMessage,
  14. Object? expectedPongMessage = _unset,
  15. Object? expectedPongMessagePattern = _unset,
  16. int? maxMissedHeartbeats,
  17. bool? useExponentialBackoff,
  18. Duration? maxReconnectDelay,
  19. double? backoffMultiplier,
  20. Object? httpClient = _unset,
  21. bool? enableMessageQueue,
  22. int? maxQueueSize,
  23. Object? messageQueueTimeout = _unset,
  24. bool? enableAck,
  25. Duration? ackTimeout,
  26. int? maxAckRetries,
})

Returns a copy of this config with the given fields replaced.

Nullable fields (protocols, headers, pingInterval, expectedPongMessage, expectedPongMessagePattern, httpClient, messageQueueTimeout) can be explicitly cleared by passing null:

final cleared = config.copyWith(protocols: null);

Implementation

WebSocketConfig copyWith({
  String? url,
  Object? protocols = _unset,
  Object? headers = _unset,
  Object? pingInterval = _unset,
  Duration? connectionTimeout,
  Duration? reconnectDelay,
  int? maxReconnectAttempts,
  bool? autoReconnect,
  bool? enableLogging,
  bool? enableHeartbeat,
  Duration? heartbeatInterval,
  Duration? heartbeatTimeout,
  String? heartbeatMessage,
  Object? expectedPongMessage = _unset,
  Object? expectedPongMessagePattern = _unset,
  int? maxMissedHeartbeats,
  bool? useExponentialBackoff,
  Duration? maxReconnectDelay,
  double? backoffMultiplier,
  Object? httpClient = _unset,
  bool? enableMessageQueue,
  int? maxQueueSize,
  Object? messageQueueTimeout = _unset,
  bool? enableAck,
  Duration? ackTimeout,
  int? maxAckRetries,
}) {
  return WebSocketConfig(
    url: url ?? this.url,
    protocols: identical(protocols, _unset)
        ? this.protocols
        : protocols as List<String>?,
    headers: identical(headers, _unset)
        ? this.headers
        : headers as Map<String, String>?,
    pingInterval: identical(pingInterval, _unset)
        ? this.pingInterval
        : pingInterval as Duration?,
    connectionTimeout: connectionTimeout ?? this.connectionTimeout,
    reconnectDelay: reconnectDelay ?? this.reconnectDelay,
    maxReconnectAttempts: maxReconnectAttempts ?? this.maxReconnectAttempts,
    autoReconnect: autoReconnect ?? this.autoReconnect,
    enableLogging: enableLogging ?? this.enableLogging,
    enableHeartbeat: enableHeartbeat ?? this.enableHeartbeat,
    heartbeatInterval: heartbeatInterval ?? this.heartbeatInterval,
    heartbeatTimeout: heartbeatTimeout ?? this.heartbeatTimeout,
    heartbeatMessage: heartbeatMessage ?? this.heartbeatMessage,
    expectedPongMessage: identical(expectedPongMessage, _unset)
        ? this.expectedPongMessage
        : expectedPongMessage as String?,
    expectedPongMessagePattern: identical(expectedPongMessagePattern, _unset)
        ? this.expectedPongMessagePattern
        : expectedPongMessagePattern as RegExp?,
    maxMissedHeartbeats: maxMissedHeartbeats ?? this.maxMissedHeartbeats,
    useExponentialBackoff:
        useExponentialBackoff ?? this.useExponentialBackoff,
    maxReconnectDelay: maxReconnectDelay ?? this.maxReconnectDelay,
    backoffMultiplier: backoffMultiplier ?? this.backoffMultiplier,
    httpClient:
        identical(httpClient, _unset) ? this.httpClient : httpClient,
    enableMessageQueue: enableMessageQueue ?? this.enableMessageQueue,
    maxQueueSize: maxQueueSize ?? this.maxQueueSize,
    messageQueueTimeout: identical(messageQueueTimeout, _unset)
        ? this.messageQueueTimeout
        : messageQueueTimeout as Duration?,
    enableAck: enableAck ?? this.enableAck,
    ackTimeout: ackTimeout ?? this.ackTimeout,
    maxAckRetries: maxAckRetries ?? this.maxAckRetries,
  );
}