HTML5

  • WebRTC Comunicación en tiempo real sin plugin

    WebRTC logo

    ¿Qué es WebRTC?

    WebRTC (Web Real-Time Communication) es un proyecto de software libre que permite a los navegadores mantener comunicaciones en tiempo real a través de una API Javascript sin necesidad de software adicional. Es un proyecto mantenido por Google, Mozilla y Opera que actualmente está en proceso de estandarización en el IETF y en el W3C. 

    Componentes Principales

    • MediaStream o getUserMedia: Permite al navegador acceder a la cámara y al micrófono. Representa un stream de audio/video y puede contener varios canales.
    • RTCPeerConnection: Permite establecer una conexión p2p con otros navegadores, procesar la señal, manejo de codec, gestión de ancho de banda, etc.
    • RTCDataChannel: Permite al navegador una comunicación de datos bidireccional entre peers.

    Proceso de señalización (Signaling)

    Para conseguir conectar los peer es necesario intercambiar un objeto 'session description' (SDP) que contiene: 

    • Formatos soportados y que información desea enviar
    • Información de la red para iniciar la conexión p2p

    Ejemplo de SDP:

  • WebRTC, P2PSP y el CUSL

    Concurso Universitario de Software LibreFue en mayo de 2012 cuando empecé a aportar mi granito de arena a la comunidad de software libre.  Por aquel entonces, el profesor de redes de computadores de la Universidad, Vicente González, decidió que la mejor forma de entender los socket era entrando de lleno con ellos. Nos animó a colaborar en un proyecto de software libre que aún se estaba gestando, el protocolo P2PSP. Para mí aquello fue una gran oportunidad, podría colaborar en un proyecto de software libre, poner en práctica lo aprendido en clase, aprender y divertirme al mismo tiempo. Por supuesto no lo dudé un instante y solicité formar parte del P2PSP Team en launchpad. Después de 18 meses, 58 revisiones, cambios de nombre, varias correcciones de bug y algunos cambios significativos en el protocolo, el P2PSP es una realidad, incluso tiene su propia web: www.p2psp.org. Como en cualquier proyecto de software libre que se precie, seguimos trabajando para mejorarlo entre todos y nos encantaría que te unieras al proyecto. Aún queda mucho por hacer.

    Alguno estará pensando, ¿A qué viene esto ahora?, la respuesta es sencilla: Me presento al concurso universitario de software libre (CUSL). Para los que aún no lo conozcan, es un concurso de desarrollo de software, hardware y documentación técnica libre en el que puede participar cualquier estudiante, el objetivo es contribuir a la consolidación de la comunidad de software libre en la universidad. Para el concurso he decidido implementar el protocolo P2PSP con WebRTC, de forma que se ejecute íntegramente en el navegador Web sin necesidad de plugins.

    A partir de ahora escribiré una serie de post dedicados a informar sobre todo lo que rodea al proyecto. Estarán accesibles desde el Blog o directamente en Mi participación en el CUSL, todos los post se podrán encontrar por la etiqueta CUSL. Ya sólo queda desear suerte a todos los participantes. ¡A disfrutar!