public override void Dispose() { if (_state >= WebSocketState.Closed) // or Aborted { return; } _state = WebSocketState.Closed; if (_keepAliveTimer != null) { _keepAliveTimer.Dispose(); } _stream.Dispose(); }