Transmit constructor
Transmit(
- TransmitOptions options
Create a new Transmit client.
Implementation
Transmit(TransmitOptions options)
: _options = options,
_uid = options.uidGenerator?.call() ?? _uuid.v4(),
_hooks = Hook() {
// Initialize HTTP client after _uid is set
_httpClient =
options.httpClientFactory?.call(options.baseUrl, _uid) ?? TransmitHttpClient(baseUrl: options.baseUrl, uid: _uid);
// Register hooks
if (options.beforeSubscribe != null) {
_hooks.register(HookEvent.beforeSubscribe, options.beforeSubscribe!);
}
if (options.beforeUnsubscribe != null) {
_hooks.register(HookEvent.beforeUnsubscribe, options.beforeUnsubscribe!);
}
if (options.onReconnectAttempt != null) {
_hooks.register(HookEvent.onReconnectAttempt, options.onReconnectAttempt!);
}
if (options.onReconnectFailed != null) {
_hooks.register(HookEvent.onReconnectFailed, options.onReconnectFailed!);
}
// Store callbacks that are not hooks (they're called directly)
if (options.onReconnecting != null) {
_onReconnectingCallback = options.onReconnecting!;
}
if (options.onReconnected != null) {
_onReconnectedCallback = options.onReconnected!;
}
if (options.onDisconnected != null) {
_onDisconnectedCallback = options.onDisconnected!;
}
if (options.onSubscribeFailed != null) {
_hooks.register(HookEvent.onSubscribeFailed, options.onSubscribeFailed!);
}
if (options.onSubscription != null) {
_hooks.register(HookEvent.onSubscription, options.onSubscription!);
}
if (options.onUnsubscription != null) {
_hooks.register(HookEvent.onUnsubscription, options.onUnsubscription!);
}
_connect();
}