anchor.diff:            _controller.close();
           },
           cancelOnError: true);
  +    _subscription.pause();
  +    _controller = new StreamController(sync: true,
  +                                       onListen: _subscription.resume,
  +                                       onPause: _subscription.pause,
  +                                       onResume: _subscription.resume);
     }
   
     StreamSubscription listen(void onData(message),
  
positive.code: 
  
  class _WebSocketImpl extends Stream implements WebSocket {
    final StreamController _controller = new StreamController(sync: true);
    StreamSink _sink;
  
    final Socket _socket;
  
negative.code:     _readyState = WebSocket.OPEN;
  
      var transformer = new _WebSocketProtocolTransformer(_serverSide);
      _subscription = _socket.transform(transformer).listen(
          (data) {
            if (data is _WebSocketPing) {
              if (!_writeClosed) _consumer.add(new _WebSocketPong(data.payload));
  