startServer method
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);
HttpServer server = await DoxServer().listen(
DoxServer.portFor(config.serverPort),
address: DoxServer.hostFor(config.host),
isolateId: 1,
);
String backend = server is NativeHttpServer ? 'native' : 'dart:io';
Logger.info(
'Server started at ${serverUrl(server)} with $isolatesToSpawn isolate '
'($backend)',
);
_watchSignals();
}