web-dev-qa-db-fra.com

Comment faire le suivi réseau ou le débogage d'une connexion peer-to-peer WebRTC

Je me demande s'il existe un outil ou une méthode pour voir quelle connexion peer-to-peer WebRTC sous-jacente?

Par exemple simple, si j'implémente le chat vidéo en utilisant webrtc, toutes les connexions (offre, réponse, glace) sont établies mais je ne peux pas voir le streaming vidéo, comment puis-je déboguer et voir qu'il y a un paquet ou quelque chose qui les envoie entre ceux-ci deux pairs ou non.

28
A-letubby

Si vous utilisez Chrome, vous pouvez accéder à chrome://webrtc-internals. Cela vous montrera l'offre, la réponse, les états ICE et les statistiques sur la connexion (une fois établie).

Pour un débogage plus approfondi, vous pouvez voir les journaux de tous les pings STUN entre les candidats en démarrant Chrome avec les indicateurs suivants:

--enable-logging --v=4

Les journaux seront dans le chrome_debug.log fichier dans votre répertoire de données utilisateur: http://dev.chromium.org/user-experience/user-data-directory

28
tom

Il existe des moyens de déboguer l'état de la connexion sous-jacente. Si vous utilisez une application Web, vous pouvez accéder aux statistiques du navigateur. Pour le chrome, chrome://webrtc-internals ( structure API ). Ce fil peut aussi être utile (en utilisant peerJs). Pour Firefox, accédez à about:webrtc.

Pour les applications natives, c'est-à-dire pour Windows, vous devez prendre le journal du compilateur lui-même. Dans MS Visual Studio 2015, essayez Debug> Attach Process> votre application native PID, Debug> windows> output.

6
Anirban

Il peut y avoir plusieurs raisons pour lesquelles la vidéo ne diffuse pas.

  1. Votre serveur paralysant répond-il? Pour vérifier cela, connectez les candidats de glace que vous recevez dans une console. puis vérifiez leur type. si votre serveur paralysant répond, vous verrez alors le type srflx plutôt que simplement des candidats de type glace "Host". Vous pouvez également les rechercher dans chrome: // webrtc-internals.

  2. Attachez-vous le blob src correct à l'élément vidéo une fois en amont est rappelé par l'objet RTCPeerConnection?

  3. Vous devez appeler la méthode .play () sur l'élément vidéo explicitement à partir de votre javascript pour démarrer le flux vidéo distant.

2
Vasu