javascript - example - WebRTC y Websockets. Hay una diferencia
webrtc javascript (4)
En lugar de peerConnection
, también puede consultar el borrador del canal de datos de WebRTC: http://tools.ietf.org/html/draft-jesup-rtcweb-data-protocol-00 que básicamente es udp bidireccional. Que puede ser una alternativa realmente valiosa a WebSockets ya que no tiene los lados "negativos" de una conexión de TCP.
Supongo que WebRTC es una API que decodifica / codifica audio y video, aunque la comunicación entre el servidor y los clientes se realiza a través de sockets web o algún otro protocolo de red. Estoy un poco confundido. ¿WebRTC tiene su propio protocolo de comunicaciones?
Hay dos lados para WebRTC.
- API de JavaScript (
getUserMedia
) que permiten que una aplicación acceda al hardware de la cámara y el micrófono. Puede usar este acceso para mostrar simplemente la transmisión localmente (tal vez aplicando efectos ) o enviar la transmisión a través de la red. Podría enviar los datos a su servidor, o podría usar ... -
PeerConnection
, una API que permite a los navegadores establecer conexiones directas de socket peer-to-peer . Puede establecer una conexión directamente con el navegador de otra persona e intercambiar datos directamente. Esto es muy útil para datos de gran ancho de banda, como video, donde no desea que su servidor tenga que encargarse de transmitir grandes cantidades de datos.
Echa un vistazo a las demostraciones para ver ambas partes de WebRTC en acción.
Entonces en pocas palabras:
- WebSockets permite la comunicación full-duplex entre un navegador y un servidor web.
-
PeerConnection
de WebRTC permite la comunicación full-duplex entre dos navegadores.
No, la señalización no está definida por WebRTC.
Aquí hay una publicación del IETF que explica muy bien por qué no lo es: http://www.ietf.org/mail-archive/web/rtcweb/current/msg01143.html
Esto significa que usted es libre de elegir cómo intercambia información de red. Es decir, podría usar websockets, HTTP e incluso correo electrónico, pero eso sería un poco difícil :)
WebRTC utiliza RTP (un protocolo basado en UDP) para el transporte de medios, pero requiere un canal de señalización fuera de banda para configurar la comunicación. Una opción para el canal de señalización es WebSocket.