IIC2233 / syllabus-2020-2

Repositorio oficial del curso IIC2233 Programación Avanzada 🎉🎊
https://iic2233.github.io
7 stars 57 forks source link

Arquitectura Server-Cliente y envío de información #1255

Closed bastian-perez closed 3 years ago

bastian-perez commented 3 years ago

Prerrequisitos

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

Duda

Hola !

El cliente puede realizar alguna acción antes o durante manda la información de la acción que realizó el jugador? más específicamente, pueden mostrarse ventanas, cambiar labels, realizar métodos de confirmación de acción antes de enviar la acción del usuario al server ? Si no se entiende aun, pondré un ejemplo: Si el jugador decide realizar un intercambio, puede por ejemplo el cliente inmediatamente recibida la acción, mostrar la ventana de intercambio, confirmar si se cumplen las restricciones de intercambio, antes de enviarle la información al cliente, y después enviarle la acción de intercambio filtrada y sin errores? lo pregunto porque en casos así, la medida que toma el server es siempre la misma para cualquier caso, por lo que se ahorrarían lineas de código el que esas informaciones viajen cuando pueden ser automatizadas y realizadas inmediatamente sin la necesidad de una variable que puede otorgar el server. Espero que se entienda mi duda. Muchas gracias! Espero que se haya entendido bien

matiasmasjuan commented 3 years ago

Hola @bastian-perez !

Lo que se espera para esta tarea es una corecta separación cliente-servidor, considerando el front-end y back-end del cliente. En específico, el front-end del cliente se encarga de la interacción con la interfaz y emitir las señales al back-end del cliente. El back-end del cliente solo se encarga de la comunicación con el servidor a través del protocolo de envio y transmitir los resultados mediante señales hacia el front-end. Por ende toda la lógica y verificaciones de las acciones las hace el servidor.

En base a lo anterior, y según el ejemplo que diste, apenas el cliente quiera hacer un intercambio, puede abrir la ventana respectiva. Sin embargo, no puedes hacer que el cliente haga las validaciones del intercambio. Eso es trabajo del servidor. Por lo tanto, no es posible que el cliente se encargue de filtrar la información y pasarla sin errores, ya que sigue siendo trabajo del servidor.

Saludos! :smile: