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) {
    this.server = server;

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