init method

void init({
  1. required String? directory,
  2. Duration requestTimeout = const Duration(seconds: 10),
  3. required String rsaPublicKey,
  4. required String aesKey,
  5. required CxnParams cxnParams,
  6. Duration autoPullTime = const Duration(seconds: 20),
  7. int pullMsgCount = 50,
  8. List<CollectionSchema> isarSchemas = const [],
  9. bool isarInspector = false,
  10. required ConnectListener connectListener,
  11. required SubscribeCallback subscribeCallback,
  12. IsarListener? isarListener,
  13. PullListener? pullListener,
  14. ConvListener? convListener,
  15. MsgListener? msgListener,
  16. NoticeListener? noticeListener,
  17. UnreadListener? unreadListener,
})

初始化

Implementation

void init({
  required String? directory,
  Duration requestTimeout = const Duration(seconds: 10),
  required String rsaPublicKey,
  required String aesKey,
  required CxnParams cxnParams,
  Duration autoPullTime = const Duration(seconds: 20),
  int pullMsgCount = 50,
  List<CollectionSchema> isarSchemas = const [],
  bool isarInspector = false,
  required ConnectListener connectListener,
  required SubscribeCallback subscribeCallback,
  IsarListener? isarListener,
  PullListener? pullListener,
  ConvListener? convListener,
  MsgListener? msgListener,
  NoticeListener? noticeListener,
  UnreadListener? unreadListener,
}) {
  if (directory != null && directory.isNotEmpty) {
    Hive.init(directory);
  }
  _xximCore = XXIMCore()
    ..init(
      requestTimeout: requestTimeout,
      connectListener: ConnectListener(
        onConnecting: connectListener.connecting,
        onSuccess: () async {
          await Future.doWhile(() async {
            await Future.delayed(const Duration(milliseconds: 5));
            return !(await setCxnParams(
              rsaPublicKey: rsaPublicKey,
              aesKey: aesKey,
              cxnParams: cxnParams,
            ));
          });
          _isCxnParams = true;
          connectListener.success();
        },
        onClose: (code, error) {
          _isCxnParams = false;
          closePullSubscribe();
          connectListener.close(code, error);
        },
      ),
      receivePushListener: ReceivePushListener(
        onPushMsgDataList: (msgDataList) {
          _sdkManager?.onPushMsgDataList(msgDataList.msgDataList);
        },
        onPushNoticeData: (noticeData) {
          _sdkManager?.onPushNoticeData(noticeData);
        },
      ),
    );
  _sdkManager = SDKManager(
    xximCore: _xximCore!,
    directory: directory,
    autoPullTime: autoPullTime,
    pullMsgCount: pullMsgCount,
    isarSchemas: isarSchemas,
    isarInspector: isarInspector,
    subscribeCallback: subscribeCallback,
    isarListener: isarListener,
    pullListener: pullListener,
    convListener: convListener,
    msgListener: msgListener,
    noticeListener: noticeListener,
    unreadListener: unreadListener,
  );
  msgManager = MsgManager(_sdkManager!);
  noticeManager = NoticeManager(_sdkManager!);
  convManager = ConvManager(_sdkManager!, msgManager, noticeManager);
}