start method

  1. @override
Future<void> start()
override

Implementation

@override
Future<void> start() async {
  await initCli();
  await cliTool.init();

  Controller controller = Controller(cliTool, version, onStop: stop);

  opentoolRoutes(controller);

  final Router mainRouter = Router();
  mainRouter.mount(prefix, jsonRpcHttpRouter);
  Pipeline pipeline = Pipeline();
  if (apiKeys.isNotEmpty) {
    pipeline = pipeline.addMiddleware(checkAuthorization(this.apiKeys));
  }
  Handler handler = pipeline.addHandler(mainRouter);

  HttpServer server = await serve(handler, host, port);
  print("Start Server: http://${server.address.host}:${server.port}$prefix");

  // DaemonClient daemonClient = DaemonClient();
  // RegisterInfo registerInfo = RegisterInfo(
  //     file: Platform.script.toFilePath(),
  //     host: server.address.host,
  //     port: server.port,
  //     prefix: prefix,
  //     apiKeys: apiKeys,
  //     pid: pid
  // );
  // RegisterResult result = await daemonClient.register(registerInfo);
  // if(result.error != null) {
  //   print("WARNING: Register to daemon failed. (${result.error})");
  //   print("Tool Running in SOLO mode.");
  // } else {
  //   controller.setServerId(result.id);
  //   print("Register to daemon successfully, id: ${result.id}, pid:$pid");
  // }

  _serverCompleter.complete(server);
}