startServer method

Future<void> startServer()

start dox server

await Dox().startServer();

Implementation

Future<void> startServer() async {
  checkAppKey();
  addServices(config.services);
  _totalIsolate ??= Dox().config.totalIsolate;
  int isolatesToSpawn = _totalIsolate!;

  /// Windows has no SO_REUSEPORT: one isolate owns the native listener.
  if (Platform.isWindows && isolatesToSpawn > 1 && DoxServer.usesNative()) {
    Logger.info('Windows: the native server runs on one isolate');
    isolatesToSpawn = 1;
  }

  if (isolatesToSpawn > 1) {
    await DoxIsolate().spawn(isolatesToSpawn);
  }

  await startServices();
  DoxServer().setResponseHandler(config.responseHandler);
  await DoxServer().listen(config.serverPort, isolateId: 1);

  String backend = DoxServer().httpServer is NativeHttpServer
      ? 'native'
      : 'dart:io';
  Logger.info(
    sprintf(
      'Server started at http://127.0.0.1:%s with $isolatesToSpawn isolate '
      '($backend)',
      <dynamic>[Dox().config.serverPort],
    ),
  );
}