¿Qué tecnología apila para una aplicación de video chat en tiempo real en el campo de los deportes?

Sin más explicaciones es difícil escribir una respuesta, pero permítanme tratar de resumir puntos clave:

Primero: el video en tiempo real con una calidad muy alta y cero retrasos es imposible en Internet, tal vez podrías intentarlo en una intranet específica diseñada para eso, pero ten en cuenta que costará el cielo y más. Eso se debe al diseño de la red, podría explicarlo, pero consumirá tiempo escribir, una respuesta breve es que tcp / ip es el mejor esfuerzo para entregar paquetes.

Haven dijo que algunas tecnologías y prácticas que podría utilizar para tener un rendimiento máximo con un retraso mínimo y una buena escalabilidad son:

– Programación reactiva: ver el manifiesto reactivo http://www.rectivemanifesto.org
Dado que las mejores prácticas y el enfoque para la ingeniería de software necesitarán una pila de herramientas, puedo recomendar las herramientas de tipo seguro: Play framework, Akka y Scala: http://www.typesafe.com

– Websocket: es la mejor manera de chatear en tiempo real. Tiene un retraso mínimo, una escalabilidad máxima para la comunicación en tiempo real, pero no resuelve el problema del video solo el problema del chat.

– Computación en la nube. Es casi seguro que en este tipo de aplicación necesitará un entorno de producción que crezca y se reduzca según la demanda. Cloud computing es su mejor amigo, pero solo con una pila de aplicaciones que se adaptará a esto y con el tipo de pila segura que construirá teniendo esto en cuenta desde el principio. Este tema solo es profundo porque hay muchas opciones. Recomiendo el uso de Amazon Services (Amazon Web Services (AWS) – Cloud Computing Services) porque ofrece un conjunto integral de soluciones en la nube para diferentes problemas como: almacenamiento, computación, bases de datos, procesos, escalado automático, equilibrio de carga y más. De hecho, podría ejecutar cualquier aplicación en Amazon Cloud, especialmente este tipo de. Para inspirar: MLB ejecuta su herramienta masiva de estadísticas en la nube de AWS

Por último, pero no el último, necesitará un Protocolo de transporte en tiempo real para transferir sus videos, pero ese no es mi departamento :-). Lo que puedo explicar es que estos protocolos ajustan la calidad de video o audio de acuerdo con la banda de red en el cliente y el servidor en un mejor esfuerzo para entregar los datos a tiempo. Otra tecnología que debe tener en cuenta es la multidifusión porque tiene un gran impacto en el rendimiento de la transmisión, pero creo que funciona mejor en un entorno controlado y no tan bien en una aplicación pública de Internet.

Si no tuviera el requisito de tiempo real y una audiencia global, podría recomendar la estrategia de entrega de contenido, en esta estrategia distribuye las copias del video en diferentes ubicaciones, el usuario obtendrá el contenido en el lugar más cercano . Amazon tiene servicios para eso.

Creo que esto es lo principal para comenzar.

Prueba WebRTC. La adaptación en varias pilas es posible. Se puede considerar un node.js ajustado para límites superiores de v8. Pruebe también JXcore · una distribución Node.JS con características adicionales. Ps: tropezó con estas herramientas WebRTC de código abierto para desarrolladores empresariales. ¡Todo lo mejor!

Es posible que desee echar un vistazo al programa de desarrolladores de uShare.to: video en tiempo real, WebRTC, API de chat para desarrolladores