Imagine que quiero crear un juego multijugador en tiempo real, con HTML5 (cliente) y node.js (servidor).WebRTC el correcto? (juego multijugador en tiempo real)
Necesito transportar datos muy rápido del servidor a los clientes y viceversa.
En una aplicación nativa usaría UDP
para la mayoría de los datos (posición del jugador, ...), porque es mucho más rápido que TCP
y no es crítico cuando se pierde.
En HTML5
puedo (solo) usar WebSockets
. WebSockets se encuentra en la parte superior de TCP y por lo tanto no lo suficientemente rápido para un buen rendimiento.
Oí acerca de WebRTC
, pero no sé si esta podría ser la solución para este problema.
¿Alguien tiene experiencia con él?
(lo sé, que todavía está sin apoyo WebRTC para la mayoría de los navegadores, pero eso no me importa.)
¿Estás seguro de que los websockets son demasiado lentos para tu caso de uso? Un socket tcp se mantiene abierto durante la sesión de websocket para que no tenga que preocuparse por la sobrecarga de conexión para cada mensaje. – simonc
TCP: Entrega confiable de mensajes; se confirman todos los datos Se gestiona la entrega de todos los datos, y los datos perdidos se retransmiten automáticamente. UDP: Entrega no confiable y de mejor esfuerzo sin acuses de recibo Así que TCP es simplemente la técnica incorrecta para este caso de uso. – appsthatmatter
Intenta implementarlo usando WebSockets y mide si realmente es demasiado lento (no hace falta decir que abstrae su implementación de transporte para que si WebSockets resulta ser insatisfactorio, puede usar otra cosa sin descartar muchos códigos). En este momento estás optimizando prematuramente. – ebohlman