public async Task Terminate(string reason = null) { await Send(new ConnectionTerminatingMessage(reason)); await _transport.DisconnectAsync(); _connectionTerminator.Terminate(ClientId); Dispose(); }