anchor.diff:      _connectionStream.add(false);
       for (AbortWatcher callback in _abortWatchers.toList())
         callback(message);
  -  }
  -
  -  VoidCallback aborter(String message) {
  -    return () { abort(message); };
     }
   
     void dispose() {
  
positive.code:               socket?.destroy();
                socket = null;
                await new Future<Null>.delayed(delay); // too fast and it won't even open the socket
              }
            }
          } while (socket == null && !canceled);
  
negative.code: 
    void resetTimeout(Duration duration, String message) {
      _inactivityTimer?.cancel();
      _inactivityTimer = new Timer(duration, () { abort(message, timeout: true); });
    }
  
    Set<AbortWatcher> _abortWatchers = new Set<AbortWatcher>();
  
    void abort(String message, { bool timeout: false }) {
      if (_debugDumpTraffic)
        print('$_timestamp ---- DISCONNECTING - $message ----');
      TelevisionException error;
      if (timeout) {
        error = new TelevisionTimeout(message, null, this);
      } else {
        error = new TelevisionException(message, null, this);
      }
      _currentTransaction?._closeWithError(error);
      _currentTransaction = null;
      _socket.destroy();
      _socket = null;
  