disconnect method

Future<void> disconnect()

Disconect from Hasura

Implementation

Future<void> disconnect() async {
  if (_disconnectionFlag) {
    return;
  }
  _disconnectionFlag = true;
  final keys = List<String>.from(snapmap.keys);
  for (final key in keys) {
    snapmap[key]?.close();
  }
  snapmap.clear();
  final disconect = {
    'type': 'connection_terminate'
  };
  if (_isConnected) {
    sendToWebSocketServer(jsonEncode(disconect));
  }
  await Future.delayed(const Duration(milliseconds: 300));
  if (_connector?.closeCode != null) {
    await _connector?.close?.call();
  }
  await _interceptorExecutor.onDisconnect();
  _connector = null;
}