예제 #1
0
 private void procesarLogIn(String id, String tipo, String message) {
   final String nick = message.substring(0, message.lastIndexOf("|"));
   final String uuid = message.substring(message.lastIndexOf("|") + 1);
   switch (tipo) {
     case "c":
       String idServer = getServerIdByNick(nick);
       if (idServer != null) {
         TumpiServer server = getServer(idServer);
         if (!server.isClient(id)) {
           server.putClient(new TumpiClient(id));
           sendClientNotification(server.id, uuid, "on");
           sendLoginResponse(id, 1);
         }
       } else {
         sendLoginResponse(id, 0);
       }
       break;
     case "s":
       String serverId = getServerIdByNick(nick);
       if (serverId == null) {
         servidores.put(id, new TumpiServer(nick, id));
         Log.$.info("Registrado servidor con nick: " + nick + " y id: " + id);
         sendLoginResponse(id, 1);
       } else {
         sendLoginResponse(id, 0);
       }
       break;
   }
 }
예제 #2
0
 private void procesarMessage(String origen, String tipo, String destino, String message) {
   try {
     switch (tipo) {
       case "c":
         if (serverAlreadyExists(origen)) {
           TumpiServer server = getServer(origen);
           if ("*".equals(destino)) {
             for (TumpiClient cliente : server) {
               socket.enviarMensajeServer(cliente.id, message);
             }
           } else if (server.isClient(destino)) {
             socket.enviarMensajeServer(destino, message);
           }
         }
         break;
       case "s":
         String id_server = getServerIdByNick(destino);
         if (id_server != null) {
           if (getServer(id_server).isClient(origen)) {
             socket.enviarMensajeServer(getServer(id_server).id, origen + "|" + message);
           }
         }
         break;
     }
   } catch (Exception ex) {
     Log.$.error("Error al procesar el mensaje recibido", ex);
   }
 }
예제 #3
0
  @Override
  public void onClientDisconnected(String id) {
    if (serverAlreadyExists(id)) {
      TumpiServer server = getServer(id);
      try {
        Map<String, Cliente> clientes_socket = socket.clientes;
        for (TumpiClient cliente_tumpi : server) {
          Cliente cliente_socket = clientes_socket.get(cliente_tumpi.id);
          cliente_socket.close();
        }
        server.removeAllClients();

      } catch (IOException ex) {
        Log.$.error("Error al desconectar al cliente");
      }
      servidores.remove(id);
    } else {
      Collection<TumpiServer> values = servidores.values();
      for (TumpiServer server : values) {
        if (server.isClient(id)) {
          server.removeCliente(id);
          sendClientNotification(server.id, id, "off");
        }
      }
    }
    Log.$.info("Cliente desconectado >> " + id);
  }