@Override
 public void onOpen() {
   if (!connected) {
     factory.sessionOpened(getSession());
     connected = true;
   }
   super.onOpen();
 };
 @Override
 public void onClose() {
   super.onClose();
   factory.sessionClosed(getSession());
 }