Quelle est la différence entre WebRTC et WebSockets pour la communication de données de bas niveau

j'essaie de comprendre la différence entre WebRTC et WebSockets pour mieux comprendre quel scénario appelle quoi. Je suis curieux de l'idée générale de deux parties (principalement basées sur le web, mais potentiellement l'une étant une application serveur dédiée) se parlant l'une à l'autre.

Hypothèse:

  • clairement en ce qui concerne les réseaux ad hoc, WebRTC gagne car il soutient nativement la ICE protocole/méthode.

Questions:

  • en ce qui concerne la communication directe entre deux parties connues dans le navigateur, si Je ne me fie pas à l'envoi de données multimédia, et si Je ne m'intéresse qu'à l'envoi de données entières, Est-ce que WebRTC me donne des avantages par rapport aux webSockets autres que le cryptage de données?
  • en ce qui concerne un serveur dédié parlant à un client basé sur un navigateur, quelle plate-forme me donne un avantage? J'aurais besoin de coder un serveur WebRTC (est-ce possible de navigateur?), ou j'aurais besoin de coder un serveur WebSocket (une recherche rapide sur google me fait penser que c'est possible).
41
demandé sur chicks 2012-09-08 00:10:25

3 réponses

WebRTC spécifie le transport des médias sur RTP .. qui peut fonctionner P2P dans certaines circonstances. Dans tous les cas, pour établir une session webRTC, vous aurez également besoin d'un protocole de signalisation .. et pour ce WebSocket est un choix probable. En d'autres termes: à moins que vous ne vouliez diffuser des médias en temps réel, WebSocket est probablement mieux adapté.

19
répondu oberstet 2012-09-09 17:44:49

il y a une différence significative: Websockets fonctionne via TCP, WebRTC fonctionne via UDP. En fait, WebRTC est le protocole SRTP avec certaines fonctionnalités supplémentaires comme STUN, ICE, DTLS etc et les fonctionnalités VoIP internes telles que Jitter Buffer adaptative, AEC, AGC, etc.

ainsi, Websocket est conçu pour une communication fiable. C'est un bon choix si vous voulez envoyer des données qui doivent être envoyés de façon fiable.

lorsque vous utilisez WebRTC, le flux transmis n'est pas fiable. Certains paquets peuvent être perdue dans le réseau. Il est mauvais si vous envoyez des données critiques, par exemple pour le traitement financier, le même issuee est idéal lorsque vous envoyez un flux audio ou vidéo où certains cadres peuvent être perdus sans aucun problème de qualité perceptible.

si vous voulez envoyer un canal de données via WebRTC, vous devriez avoir un algorithme de correction d'erreur pour restaurer les données si une base de données a été perdue dans le réseau.

38
répondu Nick 2013-09-27 10:22:52

Question 1: Oui. La partie DataChannel De WebRTC vous donne des avantages dans ce cas, car elle vous permet de créer un canal pair à pair entre les navigateurs pour envoyer et recevoir toutes les données brutes que vous voulez. Websockets vous oblige à utiliser un serveur pour connecter les deux parties.

Question 2jWebSocket). Pour ajouter un support dans un serveur pour établir une connexion avec un canal de données WebRTC, cela peut vous prendre quelques jours de vie et de santé. :)

9
répondu nakib 2013-01-08 00:34:05