init method

void init(
  1. SSEProcessorConfig config,
  2. Dio dio
)

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);
}