startServer method

Future<Server> startServer([
  1. dynamic address,
  2. int port = 0
])

Starts, and returns the server.

Implementation

Future<Server> startServer([address, int port = 0]) {
  var host = address ?? '127.0.0.1';
  return generateServer(host, port).then((server) {
    _server = server;

    // TODO: Ugly fix
    isServerInitialised = true;

    return Future.wait(app.startupHooks.map(app.configure)).then((_) {
      app.optimizeForProduction();
      _sub = server.listen((request) {
        var stream = createResponseStreamFromRawRequest(request);
        stream.listen((response) {
          // TODO: To be revisited
          handleRawRequest(request, response);
        });
      });
      return Future.value(_server);
    });
  }).catchError((error) {
    app.logger?.severe('Failed to create server', error);
    throw ArgumentError('[Driver]Failed to create server');
  });
}