init method
Initialization method, which must be called during use
config Configuration information used to config such as version number, logFileName, debug mode etc.
dio Associated with dio, currently SSEProcessor acts as an interceptor in dio component
Implementation
void init(SSEProcessorConfig config, Dio dio) {
_sseConfig = config;
_idleTimeout = config.idleTimeout;
_exceptionTimeout = config.exceptionTimeout;
_dio = dio;
_dio.interceptors.add(this);
slog.init(fileName: config.logFileName, debugAble: config.debug, onLog: config.onLog);
_sio = Sio(_dio, _interceptorManager, this, _filterService);
_sseBridge.debugTag = config.debugTag;
_sseCacheDeliverer = SSECacheDeliverer(
sseBufferExtractInterval: config.sseBufferExtractInterval,
eleTypesInInterval: _sseConfig?.eleTypesInInterval);
_releaseAbles
..add(_sseCacheDeliverer)
..add(_interceptorManager)
..add(_connectManager)
..add(_filterService)
..add(_sseBridge);
if (_sseConfig!.streamAdapter != null) {
_adapterService.adapter = _sseConfig!.streamAdapter!;
}
_sseBridge.init();
_interceptorManager.addSSEInterceptor(SSEAutoRemoveInterceptor(_interceptorManager));
if (config.sseFilter != null) {
_filterService.setFilter(config.sseFilter!, permanent: true);
}
_streamRouter.register(_sseBridge);
slog.df("init config $config dio info ${_dio.interceptors}", tag: tag);
}