anchor.diff:          break;
         case MessageType.receive:
           if (!isConnected) {
  -          html.window.console.error("Receiving messages but not connected? " +
  -              msg.toString());
  +          return "Receiving messages but not connected? ${msg}";
           }
   
           return new ConfirmMessage(msg.id);
         default:
  -        html.window.console.error("Unsupported message: ${msg}");
  +        return "Unsupported message: ${msg}";
       }
   
       return null;
  
positive.code:     _socket.onMessage.listen((event) {
        var reply = _process(new Message.fromJson(event.data));
  
        if (reply != null) {
          _send(reply);
        }
  
      });
    }
  
  
negative.code:     _socket.sendString(JSON.encode(msg));
    }
  
    /// Returns a reply [Message], an error [String], or null.
    dynamic _process(Message msg) {
      html.window.console.log(msg);
  
      switch (msg.type) {
  