close method

Future<void> close()

关闭服务器

Implementation

Future<void> close() async {
  final completer = Completer();
  //销毁心跳循环
  _ticker?.cancel();
  _ticker = null;
  //断开集群连接
  final allClientList = <EasyClient>[];
  _clusterClientMap.forEach((cluster, clientList) => allClientList.addAll(clientList));
  for (var client in allClientList) {
    await client.destroy();
  }
  //关闭server
  _server?.close(force: true).then((value) {
    if (_router != null) {
      logInfo(['web server was closed.']);
    } else {
      logInfo(['websocket server was closed.']);
    }
    //释放http服务器实例
    _server = null;
    //关闭完成
    completer.complete();
  });
  return completer.future;
}