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; } }
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); } }
@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); }