EventSource<T> constructor
EventSource<T> ({
- required String url,
- required T parser(
- String data
- Client? httpClient,
- HttpMethod method = HttpMethod.get,
- Map<
String, dynamic> ? params, - FutureOr<
Map< headers()?,String, String> > - Duration retryDelay = Duration.zero,
- int? maxRetryCount,
- SseHookOnMessage<
T> ? onMessage, - SseHookOnOpen<
T> ? onOpen, - SseHookOnClose<
T> ? onClose, - SseHookOnError<
T> ? onError, - String? lastEventId,
Implementation
EventSource({
required this.url,
required this.parser,
http.Client? httpClient,
this.method = HttpMethod.get,
Map<String, dynamic>? params,
FutureOr<Map<String, String>> Function()? headers,
Duration retryDelay = Duration.zero,
int? maxRetryCount,
// hooks
SseHookOnMessage<T>? onMessage,
SseHookOnOpen<T>? onOpen,
SseHookOnClose<T>? onClose,
SseHookOnError<T>? onError,
this.lastEventId,
}) : _headers = headers,
_params = params,
_retryDelay = retryDelay,
_maxRetryCount = maxRetryCount {
this._httpClient = httpClient ?? http.Client();
// set hooks
_onMessage = (data) {
onMessage?.call(data, this);
_streamController?.add(data);
};
_onError = (err) {
onError?.call(err, this);
_streamController?.addError(err);
};
_onOpen = (response) {
onOpen?.call(response, this);
};
_onClose = () {
onClose?.call(this);
};
_connect();
}