IIC2233 / Syllabus-2022-1

Repositorio oficial del curso IIC2233 Programación Avanzada 🚀✨
https://iic2233.ing.puc.cl/
45 stars 40 forks source link

Problema inicio de sesión múltiples ventanas de inicio #254

Open MaxAl100 opened 2 years ago

MaxAl100 commented 2 years ago

Prerrequisitos

(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")

Duda

Básicamente lo que me sucede es que, en caso de que hayan dos usuarios en el menú de inicio y estos entren a la sala de espera uno después del otro, el segundo reemplaza al primero, pero el primero sigue teniendo su ventana abierta. Este problema no me sucede si un jugador está en la sala de espera y luego un segundo jugador inicia la ventana de inicio y entra a la ventana de espera.

Incluyo dos sets de dos imágenes, en el primero como funciona con un jugador que entra a la sala de espera antes de que el siguiente inicie la ventana de inicio, en el segundo ambos usuarios están en la ventana de inicio y entran en la de espera uno después del otro.

image image

image image

También se puede ver que las características de administrador no son traspasadas y el juego puede comenzar(se inicia la ventana de juego para los dos usuarios) No sé qué hace este error, ya que en mi programa una función llamada validar login revisa la cantidad de jugadores existentes y pone al siguiente usuario en su puesto correcto según cuantos estén en la sala de espera.

JadrinaDA commented 2 years ago

Hola! Pareciera ser un problema en que el servidor esta mirando quien está en la sala de espera en el momento incorrecto, tal vez lo hace solo al entrar a la ventana de inicio y por eso si ambos estan en la sala de inicio no se ven entre si. Y si lo estas llamando en el lugar correcto revisa a ver si se está actualizando la lista de jugadores como se debe ya que si esa información se pierde podría causar el error. Revisa eso y asegurate que cada vez que entre alguien al lobby se esté mandando la misma información a todos, es decir que todos muestren la misma ventana. Avísame si te sirve o si necesitas más ayuda.

MaxAl100 commented 2 years ago

Hola! Pareciera ser un problema en que el servidor esta mirando quien está en la sala de espera en el momento incorrecto, tal vez lo hace solo al entrar a la ventana de inicio y por eso si ambos estan en la sala de inicio no se ven entre si. Y si lo estas llamando en el lugar correcto revisa a ver si se está actualizando la lista de jugadores como se debe ya que si esa información se pierde podría causar el error. Revisa eso y asegurate que cada vez que entre alguien al lobby se esté mandando la misma información a todos, es decir que todos muestren la misma ventana. Avísame si te sirve o si necesitas más ayuda.

Al final el problema no era ninguno de esos dos, el problema fue que, al copiar el propio y preparado por los ayudantes de la AF3, se utilizaba un id del servidor en la lógica para organizar los clientes y este se convertía más grande cada vez que un socket se conectaba, entonces los dos jugadores terminaban conectados al mismo id. Eso :)

JadrinaDA commented 2 years ago

Que bien que lo solucionaste! Éxito en la tarea.