anchor.diff:      webSocket.send(json.stringify(login));
     }
   }
  -TarabishSrv tserver;
  +TarabishSocket tserver;
   
   @observable
   String loginName = "Nobody";
  
positive.code: import 'dart:json' as json;
  import 'package:web_ui/web_ui.dart';
  
  
  class TarabishSrv {
    String url;
    WebSocket webSocket;
    int cookie;
  
    TarabishSrv(this.url) {
      _init();
    }
  
  
negative.code:     }
  
      webSocket.onOpen.listen((e) {
        connected = true;
        print('Connected');
        retrySeconds = 2;
      });
  
      webSocket.onClose.listen((e) => scheduleReconnect());
      webSocket.onError.listen((e) => scheduleReconnect());
      webSocket.onMessage.listen((e) => callback(e.data));
    }
  
    send(String data) {
      webSocket.send(data);
    }
  }
  
  class TarabishSocket {
    // TODO: add logged_in, and queue for messages while not logged_in
    ReconnectingSocket webSocket;
    int cookie;
    Map<String, dynamic> eventMap;
  
    TarabishSocket(url) {
      eventMap = new Map();
      webSocket = new ReconnectingSocket(url, _receiveEvent);
    }
  
    _receiveEvent(String encodedMessage) {
  