anchor.diff:                    onConnectionError(e, e);
                   });
   
  -            return(waitingForStompClientHolder);    
  +            return(waitingForStompClientHolder);
           });
   }
   
  
positive.code:   final SockJS.Client _socket;
    Completer<_SockDartConnector> _starting = new Completer();
  
      static Future<_SockDartConnector> start(String url, List<String> protocolsWhiteList, bool debugFlag) {
  
        SockJS.Client sockJs = new SockJS.Client(url, protocolsWhitelist:protocolsWhiteList, debug:debugFlag, devel:true);
  
        _SockDartConnector connector = new _SockDartConnector(sockJs);
  
        return connector._starting.future;
    }
  
    _SockDartConnector(this._socket) {
      _init();
    }
  
  
    void _init() {
      _socket.onOpen.listen((_) {
        print("here is onOpen");
        _starting.complete(this);
        _starting = null;
      });
      ///Note: when this method is called, onString/onError/onClose are not set yet
      _socket.onMessage.listen((event) {
        print("here is onMessage");
        final data = event.data;
        if (data != null) {
          //TODO: handle Blob and TypedData more effectively
  
negative.code:     });
      _socket.onClose.listen((event) {
        if (onClose != null) onClose();
      });
  
    }
  
  