Fehlersuche in Ihrer Video-Applikation

Übersicht

Dieser Leitfaden erklärt, wie Sie Ihre Videoanwendung effektiv debuggen können. Sowohl während der Entwicklung als auch nach der Bereitstellung können Sie und Ihre Endbenutzer auf Probleme stoßen. Es gibt eine Reihe von Möglichkeiten, wie Sie Fehler und Probleme mit Ihrer Anwendung aufspüren können.

Debugging während der Entwicklung

Da Videoanwendungen in einer Vielzahl von Anwendungen geschrieben werden können, hängt die Fehlersuche während der Entwicklung davon ab, in welcher Sprache Sie Ihre Anwendung geschrieben haben.

JavaScript

Protokollierung auf der Konsole

Wenn Sie Ihre Anwendung entwickeln, fügen Sie den unten stehenden Code irgendwo in Ihre Anwendung ein. Auf diese Weise erhalten Sie mehr Logging-Ausgaben auf Ihrer Konsole und können Ihr Programm besser verfolgen und verstehen, was hinter den Kulissen geschieht.

OT.setLogLevel(OT.DEBUG);

Sie können auch Nachrichten auf der Konsole protokollieren, indem Sie die Funktion OT.log() Methode:

OT.log("my session ID: " + session.sessionId);

(Aufruf OT.setLogLevel(OT.DEBUG) oder OT.setLogLevel(OT.LOG) vor dem Aufruf OT.log().)

Testen mehrerer Client-Verbindungen auf einem Rechner

Sie können einen Stream, den Sie auf derselben Browserseite veröffentlichen, nicht abonnieren. Sie können die Seite jedoch in einem zweiten Tab (oder Browserfenster) öffnen und einen Stream abonnieren, der in dem anderen Tab (oder Fenster) veröffentlicht wurde.

Verwendung von Abschlusshandlern

Bei vielen Methoden, die asynchron abgeschlossen werden, ist der letzte Parameter, den Sie übergeben, eine Abschlusshandlerfunktion. Diese Funktion wird aufgerufen, wenn die Methode abgeschlossen ist oder fehlschlägt. Wenn sie fehlschlägt, wird der Funktion ein Fehlerobjekt als Parameter übergeben.

Zum Beispiel ruft der folgende Code die Session.connect() Methode und übergibt einen Abschluss-Handler:

var session = OT.initSession(appId, session);
session.connect(token, function (error) {
  if (error) {
    if (error.name === "OT_NOT_CONNECTED") {
      alert("You are not connected to the internet. Check your network connection.");
    }
    console.log("Failed to connect: ", error.message);
  } else {
    console.log("Connected");
  }
});

Weitere Informationen finden Sie unter Behandlung von Ausnahmen.

Meldung eines Problems

Sie können die OT.reportIssue() Methode, um programmatisch zu melden, wenn in Ihrer Anwendung ein Problem auftritt. Diese Methode liefert Ihnen eine Problem-ID, die Sie mit der Methode Sitzungsinspektor oder wenn Sie das Problem mit dem Vonage API-Supportteam besprechen.

OT.reportIssue(function(error, issueId) {
  if (error) {
    console.log(error);
  } else {
    console.log(issueId);
    // You may want to use XMLHttpRequest to report this issue ID to a server
    // that can store it in a database for later reference.
  }
});

Die OT.reportIssue() Methode nimmt einen Parameter entgegen, eine Abschlusshandlerfunktion, die aufgerufen wird, wenn der Aufruf von OT.reportIssue() erfolgreich ist oder fehlschlägt. Die Funktion "completion handler" hat zwei Parameter.

Der erste Parameter ist ein Fehlerobjekt, das gesetzt wird, wenn der Aufruf der reportIssue() Methode fehlschlägt (z. B. wenn der Client nicht mit dem Netz verbunden ist) oder null wenn der Aufruf der reportIssue() Methode erfolgreich ist. Der zweite Parameter wird auf die gemeldete Problem-ID (eine eindeutige Zeichenfolge) gesetzt, wenn der Aufruf erfolgreich war.

Java

Ein Problem melden

Sie können die Session.reportIssue() Methode, um programmatisch zu melden, wenn in Ihrer Anwendung ein Problem auftritt. Diese Methode liefert Ihnen eine Problem-ID, die Sie mit der Methode Inspektor oder wenn Sie das Problem mit dem Vonage API-Supportteam besprechen.

String issueId = session.reportIssue();

Möglicherweise möchten Sie die Problem-ID an einen Server senden, der sie in einer Datenbank zur späteren Bezugnahme speichern kann.

Objektiv-C

Ein Problem melden

Sie können die OTSession reportIssue() Methode, um programmatisch zu melden, wenn in Ihrer Anwendung ein Problem auftritt. Diese Methode liefert Ihnen eine Problem-ID, die Sie mit der Methode Inspektor oder wenn Sie das Problem mit dem Vonage API-Supportteam besprechen.

OTError* issueId = nil;
[mySession reportIssue:&issueId];
if (issueId) {
  NSLog(@"Report issue ID: %@", issueId);
}

Die issueId ist ein Zeiger auf eine Zeichenkette, die als eindeutiger Bezeichner für das gemeldete Problem festgelegt wird. Schlägt der Aufruf der Methode fehl (z. B. wegen einer fehlenden Netzwerkverbindung), wird dieser Wert auf null gesetzt.

Möglicherweise möchten Sie die Problem-ID an einen Server senden, der sie in einer Datenbank zur späteren Bezugnahme speichern kann.

React Native

Abhören von Ausnahmeereignissen

Um alle Ausnahmeereignisse zu erkennen, fügen Sie einen Ereignishandler für otrnError und error Veranstaltungen:

<OTSession
    applicationId={this.apiKey}
    sessionId={this.sessionId}
    token={this.token}
    eventHandlers={{
      sessionConnected: event => {
        console.log('session connected', event);
      },
      error: event => {
        console.log('error', event);
      },
      otrnError: event => {
        console.log('otrnError', event);
      },
    };}>
        { /* ... */ }
</OTSession>

Meldung eines Problems

Sie können die reportIssue() Methode des OTSession-Objekts, um programmatisch zu melden, wenn in Ihrer Anwendung ein Problem auftritt. Diese Methode gibt Promise zurück, das mit einer Problem-ID (String) aufgelöst wird, die Sie mit der Inspektor-Werkzeug oder an das Vonage API-Supportteam.

// otSessionRef is an OTSession ref
otSessionRef.reportIssue()
  .then((issueId) => console.log(issueId));
  // You may want to use XMLHttpRequest to report this issue ID to a server
  // that can store it in a database for later reference.

Schnell

Ein Problem melden

Sie können die OTSession reportIssue(_:) Methode, um programmatisch zu melden, wenn in Ihrer Anwendung ein Problem auftritt. Diese Methode liefert Ihnen eine Problem-ID, die Sie mit der Methode Inspektor oder wenn Sie das Problem mit dem Vonage API-Supportteam besprechen.

var issueId: OTError?
mySession.reportIssue(&issueID)
if (issueId) {
  print("Report issue ID: \(issueId)")
}

Die issueId ist ein Zeiger auf eine Zeichenkette, die als eindeutiger Bezeichner für das gemeldete Problem festgelegt wird. Schlägt der Aufruf der Methode fehl (z. B. wegen einer fehlenden Netzwerkverbindung), wird dieser Wert auf null gesetzt.

Möglicherweise möchten Sie die Problem-ID an einen Server senden, der sie in einer Datenbank zur späteren Bezugnahme speichern kann.

Nutzung des Spielplatzes

Die Vonage Video API Spielplatz können Sie einfach eine Verbindung zu einer Sitzung in einem Web-Client herstellen. Dies kann beim Debuggen einer App nützlich sein, die das Vonage Video React Native SDK (oder ein anderes Client SDK) verwendet.

Einzelheiten finden Sie in der Dokumentation zum Spielplatz.

Fehlersuche mit Inspector

Die Sitzungsinspektor Tool liefert Post-Mortem-Diagnoseinformationen über Vonage Video-Sitzungen. Geben Sie eine Sitzungs-ID oder eine gemeldete Problem-ID in Inspector ein, um Rohinformationen auf Stream- und Benutzerebene anzuzeigen, die Ihnen helfen, Fehler, Ausfälle und Qualitätsprobleme zu erkennen.

Siehe auch