import threading from Modelo import ModeloCliente from server import start_server class ControladorChat: def __init__(self, vista): self.vista = vista self.modelo = ModeloCliente() def iniciar_servidor(self): """Inicia el servidor en un hilo separado.""" threading.Thread(target=start_server, daemon=True).start() self.vista.mostrar_mensaje("[SERVIDOR] Servidor iniciado en segundo plano...\n") def conectar_cliente(self): """Intenta conectar el cliente al servidor.""" mensaje = self.modelo.conectar( on_message_received=self.vista.mostrar_mensaje, on_error=self.vista.mostrar_mensaje ) self.vista.mostrar_mensaje(mensaje) if self.modelo.connected: self.vista.habilitar_envio() def enviar_mensaje(self): """Obtiene el mensaje de la vista y lo envía al servidor, además lo imprime en la interfaz.""" mensaje = self.vista.message_entry.get() if mensaje: self.vista.mostrar_mensaje(f"[TÚ] {mensaje}") # Agregar el mensaje a la vista error = self.modelo.enviar_mensaje(mensaje) if error: self.vista.mostrar_mensaje(error) self.vista.message_entry.delete(0, 'end') # Limpiar el campo de entrada