Irving Caamal
uRieL Martinez Bautista
Irving Caamal
Irving Caamal
uRieL Martinez Bautista
Irving Caamal
Alvaro Eduardo Garzón Pira
Carlos Eduardo Gomez García
Rafael Alejandro Belalcázar Burbano
Carlos Eduardo Gomez García
Víctor José Ruiz Herrera
Carlos Alejandro Hernández Mejía
Carlos Antonio Molano Solarte
Juan Sebastián Joya Rodríguez
Carlos Eduardo Gomez García
Miguel Enrique Velásquez Millán
Cristian Camilo Cortes Ortiz
Raul Valdez Piedra
Diego Reyes Cabrera
Juan Pablo Lopez Ramirez
Alvaro Legarda
Irving Juárez
Xamir E Rojas
Angel Javier Sanchez Tenjo
Israel Josue Feric Godoy
Luis Angel Castillo Vega
Roberto Pérez
Fermín Alejandro Flores Reyes
Pablo Rocha
VICTOR MANUEL MURILLO CAMAYO
En Platzi no hay cursos avanzados...
Si claro...
Que buen curso, cuantos cursos por hacer D:
Esto es avanzado? 😂
Para mi sí, creo que la educación es subjetiva :D que padre que ya sepas tú y pienses que no es avanzado, pero para mi si que lo es! :D
El profesor: "No trates de leer mis mensajes, ese no es mi WhatsApp"
Yo: "¡Maldición!"
Te caché! xD
Estaba esperando este curso desde que lo anunciaron
A por él! Cualquier feedback es bien recibido 💚
#RetaxMaster @RetaxMaster
¿En este curso vemos el uso de socket_io con multiples instancias en el servidor?
Por ejemplo si subo mi aplicacion en azure y subo las instancias a mas de dos, el socket revienta, porque no sabe a cual instancia responder.
Espero leas este comentario. Gracias por este excelente curso.
Introducción
Una aplicación en tiempo real es aquella que permite mantener dos o más clientes conectados y que a su vez les informa sobre cambios en las páginas sin necesidad de que estas lo soliciten de manera explícita.
💡 En pocas palabras, en estas aplicaciones, tanto el cliente cómo el servidor pueden mandar información cuando sea necesario.
En la actualidad, vivimos rodeados de este tipo de aplicaciones. Por ejemplo, desde las aplicaciones de mensajería (como WhatsApp, Signal, Telegram, etc). hasta las redes sociales (como el feed Facebook, Twitter, Instagram, etc.) o aplicaciones de deliverys, son aplicaciones en tiempo real.
Es aquí donde el modelo tradicional se nos queda corto, haciendo difícil el desarrollo de aplicaciones en tiempo real, ya que en dicho modelo el cliente debe enviar una solicitud para que el servidor pueda responder.
💡 Es decir, no importa si el servidor tiene nueva información, esta no se verá reflejada en el navegador si este no la solicita y el navegador nunca sabrá cuándo solicitarla.
En parte, esto se debe a que el protocolo HTTP está diseñado especialmente para aplicaciones del tipo cliente-servidor (dónde lo “común” es mandar peticiones al servidor y recibir una respuesta de este) y no para aplicaciones en tiempo real.
Para resolver esta problemática, surgió el modelo Comet, que permitía simular aplicaciones en tiempo real, usando una solicitud HTTP de larga duración (HTTP Long-Polling Request).
Esto consistía básicamente en que el cliente iniciaba una solicitud, la cual se mantenía abierta por mucho tiempo, para que el servidor pueda responder en cuanto tenga nueva información, pero sin finalizar la respuesta.
💡 Comet también era conocido como “Ajas push” y fue usado por Gmail en sus inicios.
Esto era ineficiente, por ello, surge el protocolo Websockets, el cual, proporciona un canal bidireccional y full-duplex que permite tener varios puntos finales (o sockets) conectados al mismo tiempo.
Gracias a esto, los sockets pueden enviar datos a los demás (sin que estos los pidan), permitiendo tener una comunicación en tiempo real. Son más eficientes cuando necesitamos tener actualizaciones continuas, pues no se requiere enviar solicitudes para obtener una respuesta.
💡 Los sockets permiten que múltiples aplicaciones cliente se actualicen de forma “automática” siempre que hayan nuevos datos del servidor.
Se ve genial el curso...
El nuevo curso de Programación Básica tiene como proyecto hacer un video juego, para lo cual se usan cientos de peticiones http. Considero que, quien quiera optimizar ese video juego, debe si o si tomar este curso
Sería interesante ponerse como reto personal traducir esas peticiones HTTP a un modelo como el de WebSockets 👀
Aww~ Je je je, mi momento favorito de la clase introductoria ❤️~
<img height="140" width="282" src="https://i.imgur.com/4OUj5Vs.png" />Ahora sí que sí a hacer aplicaciones en tiempo real 🔥.
¿QUÉ ES UNA APLICACIÓN EN TIEMPO REAL?
Una aplicación en tiempo real es un sistema de software diseñado para procesar y transmitir datos instantáneamente entre el servidor y el cliente, garantizando una interacción continua y sin demoras perceptibles. Utiliza tecnologías para mantener una comunicación bidireccional persistente, permitiendo la actualización dinámica de la interfaz de usuario en respuesta a eventos del servidor o de otros clientes. Esto es esencial en aplicaciones donde la inmediatez y la sincronización son críticas, como en:
¿CUÁL ES EL PROBLEMA?
El problema es que en el modelo tradicional cliente-servidor solo se puede actualizar la página únicamente si el cliente lo pide, es decir, no importa si el servidor tiene una nueva información, este no podrá mostrarla si el navegador no lo pide. Esto dificulta el desarrollo de aplicaciones en tiempo real, pues no se sabe cuándo el servidor tendrá información nueva para pedirla.
En parte, esto se debe a que el protocolo HTTP no está especialmente diseñado para este tipo de aplicaciones. Este protocolo es usado en aplicaciones que usan el modelo tradicional cliente-servidor*, ya que lo común es mandar un request y recibir un response.*
COMET
Una de las formas mediante las cuales se podía simular aplicaciones en tiempo real con el protocolo HTTP era usando un modelo llamado “Comet” también era conocido como “Ajax Push”. Este modelo fue utilizado por Gmail en sus inicios.
Comet usa una solicitud HTTP de larga duración (Long-Polling Request). Básicamente, el cliente inicia una solicitud que se mantiene abierta por mucho tiempo para que el servidor pueda responder datos en cuento tenga nueva información, pero este no finalizará la respuesta.
PROTOCOLO WEBSOCKET
El protocolo WebSocket es una tecnología de comunicación que permite una conexión bidireccional y persistente entre un cliente y un servidor. A diferencia de los protocolos tradicionales como HTTP*, que siguen un modelo de* petición-respuesta*,* WebSocket establece una única conexión que permanece abierta, permitiendo el intercambio continuo de datos en tiempo real con baja latencia.
Iniciando este curso, suena muy interesante, ya había escuchado al respecto pero no me había dado el tiempo de aprenderla, vamos a darle a este curso, el instructor es muy bueno, así que nunca pares de aprender!!!
Lo explicarán más adelante, pero igual quiero comentar que, un socket no envía información directamente a otros sockets, sino que se la envía al servidor. El servidor procesa la información enviada, y actualiza a todos los demás sockets que estén conectados al servidor por este protocolo.
Obviamente hay que cubrir un montón más. Pero quise dejar eso claro por esta clase.
Nunca había esperado tanto un curso como este jajaaja, el semestre pasado en la universidad no pude entender este tema y tengo la esperanza de que con este curso por fin podre comprenderlo.
jajajajaj este profesor me sacó la risa con su is de enseñar, muy cool.
Incluso los videojuegos en linea son una aplicación en tiempo real... Incluso cualquier aplicación de mensajeria es una aplicación en tiempo real
Estoy desarrollando un proyecto con SocketIO y me toca ir aprendiendo sobre la marcha.(Este curso lo estaba esperando hace mucho!) Y tengo una duda:
Quisiera estar seguro... ¿Qué pasa si emito a un socket, pero nadie está escuchando?
Puede ocurrir 2 escenarios de la situación que preguntas:
El socket esta desconectado, desde el cliente genera un error de conexión; pero puedes capturar esa desconexión cuando ocurra.
Tienes un socket abierto; siempre esta escuchando y envias un evento/mensaje que no esta mapeado en el server-socket no pasaria nada; el server solo recibe y no procesa el evento.
😵💫mareado...
En 2024... quien me ayuada en angular?
Empezando este curso, estoy seguro que será muy genial, la introducción me encantó!
Excelente! :3 a seguir aprendiendo
Deseando terminar el curso para pasar una side project que actualmente "simula" tiempo real con recargas automáticas en cortos periodos de tiempo a websocket :)