revoke method

Future<void> revoke(
  1. String nodeUId, {
  2. String reason = 'revoked',
})

Bars one node for the rest of this epoch, and disconnects it now.

For the case the session as a whole should continue: one participant withdraws, or misbehaves, and must not be able to rejoin.

Implementation

Future<void> revoke(String nodeUId, {String reason = 'revoked'}) async {
  _revoked.add(nodeUId);
  final live = _connections.values
      .where((c) => c.nodeUId == nodeUId)
      .toList(growable: false);
  for (final connection in live) {
    await _drop(connection, HubCloseCode.sessionClosed, reason);
  }
  logger.info('Node $nodeUId revoked from session "$_session": $reason');
}