start method
Starts the server. Returns true if the server was started successfully.
Implementation
Future<bool> start() async {
HttpServer httpServer;
try {
if (securityContext != null) {
httpServer = await HttpServer.bindSecure(
InternetAddress.anyIPv6,
port,
securityContext!,
);
} else {
httpServer = await HttpServer.bind(InternetAddress.anyIPv6, port);
}
} catch (e) {
stderr.writeln(
'${DateTime.now().toUtc()} ERROR: Failed to bind socket, port $port '
'may already be in use.',
);
stderr.writeln('${DateTime.now().toUtc()} ERROR: $e');
return false;
}
try {
_runServer(httpServer);
} catch (e, stackTrace) {
stderr.writeln(
'${DateTime.now().toUtc()} Internal server error. Failed to run server.');
stderr.writeln('$e');
stderr.writeln('$stackTrace');
return false;
}
_running = true;
stdout.writeln('$name listening on port $port');
return _running;
}