Vonage Video-Übergangsleitfaden für Node
Der Übergang von opentok zu @vonage/video oder @vonage/server-sdk
Einführung
Zweck
Das OpenTok Node SDK befindet sich im Wartungsmodus, da wir auf ein neues Video SDK umgestellt haben. Video SDK übergegangen sind, bei dem Vonage-Anmeldeinformationen in unserem Node SDK für alle APIs verwendet werden können.
Umfang
Um die @vonage/server-sdk Paket so klein wie möglich zu halten, wurde das Node SDK
in kleinere Module aufgeteilt. Das bedeutet, dass Sie nur das @vonage/video
in Ihr Projekt zu integrieren, anstatt das gesamte SDK. Welchen Weg Sie auch immer wählen, nur
LTS Versionen von NodeJS
unterstützt werden (zum Zeitpunkt der Erstellung dieses Artikels ist die Mindestversion 18). Das SDK kann
sowohl ESM- als auch CJS-Node-Module unterstützen.
Für die Zwecke dieses Dokuments werden alle Beispiele unter Verwendung des vollständigen SDK
als ein CJS-Modul. async/await wird ebenfalls verwendet, da es weniger ausführlich ist als
zu verwenden. promises. Bitte beachten Sie, dass async/await ist nur syntaktischer Zucker
um Versprechen herum. Es gibt keinen Unterschied in der Funktionalität. Dieses Dokument wird
verwendet auch die neueste ECMAScript-Unterstützung für const und let sowie die Verwendung von
"Fett-Pfeil"-Funktionen.
Das NodeSDK ist in Typescript geschrieben, was jedoch keine Voraussetzung ist. Typescript bietet Definitionsdateien für Ihre jeweilige IDE, um die Verwendung korrekt anzuzeigen.
Annahmen
Um von OpenTok auf das Node SDK zu migrieren, müssen Sie wissen, wie Versprechen
(oder async/await) funktionieren. Rückrufe werden nicht mehr unterstützt.
Ressourcen
Vonage Video SDK Quellcode Vonage Video API-Dokumentation Vonage Video API Spezifikationen
Planung Ihrer Migration
Bewertung der Auswirkungen
OpenTok SDK wurde mit Callbacks geschrieben. Dies bedeutet, dass eine Migration erhebliche signifikante Änderungen an Ihrem Projekt erfordern. Je nachdem, wie Sie Ihre Funktionen strukturiert haben, könnte dies eine Herausforderung darstellen. Betrachten wir zum Beispiel die Erstellung einer Sitzung
Für das Node SDK ist es so einfach wie:
try {
const session = await vonage.video.createSession(
{} // session options
);
console.log(session.sessionId);
} catch (err) {
console.error(err);
}
In der Vergangenheit waren dafür Rückrufe erforderlich, um die gleiche Aufgabe zu erfüllen:
OT.createSession(
{}, // session options
function (err, session) {
if (err) {
console.error(err)
return;
}
console.log(session.sessionId);
}
);
Wie Sie sehen können, ist dies ein wichtiger Paradigmenwechsel in der Funktionsweise Ihres Projekts.
Wenn Ihr Projekt auf ein anderes Paket angewiesen ist, das keine promiseskönnen Sie verwenden
Promise.resolve um das Versprechen aufzulösen. Dies könnte jedoch zu einem gewissen
Leistung kosten, da die Anwendung warten muss, bis das SDK den API-Aufruf
Aufruf beendet hat, bevor sie fortfahren kann.
Wenn Sie auf keinen Fall in async/awaitwerden Sie nicht migrieren können.
Zeitleiste
Berücksichtigen Sie die Zeit, die für die Umstellung erforderlich ist. Dies wird hängt von Ihrer Erfahrung mit dem Projekt und seinen Auswirkungen sowie von den Tests ab. Es ist von entscheidender Bedeutung, eine gute Test-Suite zu haben, damit Sie die Äquivalenz zwischen den SDKs von OpenTok und Vonage Video überprüfen können. Die Zeit, die Sie für die für die Umstellung ist ungefähr proportional zu der Anzahl der Stellen Stellen, an denen das OpenTok SDK in Ihrem Code verwendet wird, sowie der Vielfalt der verwendeten Funktionen verwendet werden. Einige API-Aufrufe werden einfacher zu ersetzen sein als andere.
Paket-Update
Um das Videopaket zu aktualisieren, können Sie es mit npm oder yarn etwa so:
Wenn Sie das eigenständige Modul installieren möchten (Benutzer von Typescript müssen auch
importieren @vonage/auth um den Video-Client zu erstellen):
Änderungen bei der Authentifizierung
Die Authentifizierung wird sowohl bei OpenTok als auch bei Node SDKs für Sie übernommen,
Sie müssen also Ihre Account-Anmeldedaten nur einmal bei der Initialisierung angeben.
Der Unterschied besteht darin, dass OpenTok API-Schlüssel und -Geheimnis verlangt, während für die
Video API in Node SDK, müssen Sie eine Anwendungs-ID und deren
privaten Schlüssel. Sowohl Vonage als auch OpenTok verwenden eine tokenbasierte Authentifizierung,
Die Token von Vonage sind JWTs während OpenTok ein eigenes Format verwendet.
Sie können zwar einen API-Schlüssel und ein Geheimnis für die VonageClient genau wie
mit OpenTok, wird dies für andere Vonage APIs verwendet, nicht für Video. Daher müssen Sie
müssen Sie eine Anwendung erstellen oder eine bestehende verwenden.
Sie können eine Anwendung aus dem Menü Vonage Dashboard. Stellen Sie sicher, dass Ihre Anwendung die Videofunktion aktiviert hat. Klicken Sie auf . "Bearbeiten" für eine bestehende Anwendung, um deren Fähigkeiten und Anmeldeinformationen anzuzeigen. Klicken Sie hier auf "Öffentlichen und privaten Schlüssel generieren". Dies sollte nur einmal gemacht werden einmal durchgeführt werden, da sich bei jedem Vorgang die Anmeldeinformationen ändern und das bestehende Schlüsselpaar. Wenn Sie auf diese Schaltfläche klicken, wird ein Download Ihres privaten Schlüssels ausgelöst. Sie sollten diese Datei zu Testzwecken an einem sicheren Ort ablegen. NIEMALS TEILEN ODER PREISGEBEN IHREN PRIVATEN SCHLÜSSEL! Der private Schlüssel ist praktisch das "Passwort" für Ihre Anwendung und sollte daher sorgfältig behandelt werden.
Weitere Hinweise zum Einrichten einer Anwendung finden Sie unter die Anleitung "Erste Schritte.
Nachdem Sie die Anwendung erstellt und den privaten Schlüssel heruntergeladen haben, geben Sie diese Informationen an den Client weiter:
const { Vonage } = require('@vonage/server-sdk')
const vonage = new Vonage({
appId: 'Your application id',
privateKey: 'Your private key',
});
Strategien für die Migration
Die Umstellung von Callback auf Promises ist keine leichte Aufgabe. Die Chancen stehen gut, dass Ihr gesamte Projekt Callbacks verwendet. Vielleicht verwenden Sie auch Pakete von Drittanbietern Pakete, die ebenfalls mit Callbacks geschrieben sind. Am besten ist es, wenn Sie einen API-Aufruf nach dem anderen.
Bitte beachten Sie, dass die Verwendung des eingebauten util.promisify Dienstprogramm, nicht immer
funktionieren. Es gibt einige Rückrufe, die mehrere Parameter zurückgeben, die
util.promisify nicht zu bewältigen ist.
Geänderte Methoden
| OpenTok-Methode | Vonage-Methode | Anmerkungen |
|---|---|---|
createSession() | createSession() | Die mediaMode die Option ist derzeit "aktiviert" oder "deaktiviert". |
generateToken() | generateClientToken() | Diese Methode wurde umbenannt, um ihre Funktion besser wiederzugeben |
listArchives() | searchArchives() | Diese Methode wurde umbenannt, um ihre Funktion besser zu verdeutlichen. Automatische Paginierung ist nicht aktiviert |
setArchiveLayout() | updateArchiveLayout() | Diese Methode wurde umbenannt, um ihre Funktion besser wiederzugeben. Die mehreren Parameter für das Layout wurden durch ein einziges Argument ersetzt, das ein ArchiveLayout |
signal() | sendSignal() | Diese Methode wurde umbenannt, um ihre Funktion besser wiederzugeben |
forceDisconnect() | disconnectClient() | Diese Methode wurde umbenannt, um ihre Funktion besser wiederzugeben |
getStream() | getStreamInfo() | Diese Methode wurde umbenannt, um ihre Funktion besser wiederzugeben |
listStreams() | getStreamInfo() | Diese Methode wurde entfernt, getStreamInfo() gibt alle Datenströme zurück, wenn nicht ein Datenstrom als zweites Argument angegeben wird |
Test-Empfehlungen
Gründliche Tests sind entscheidend für einen reibungslosen Übergang, sowohl während als auch nach der Migration. Dazu gehören nicht nur Unit-Tests, sondern auch Integrations- und Regressionstests. Es lohnt sich auch, Ihren Anwendungsablauf mindestens einmal vor und nach der Migration manuell zu testen mindestens einmal vor und nach der Migration manuell zu testen, um sicherzustellen, dass Ihre automatisierten Tests dass Ihre automatisierten Tests das tun, was Sie glauben, dass sie es tun, oder um Probleme aufzuspüren, die die Tests möglicherweise nicht nicht erkannt haben. Sie können sogar die Erstellung von Äquivalenztests in Betracht ziehen. Die Idee dabei ist dass die OpenTok- und die Vonage Video-Version Ihrer Anwendung dasselbe tun. Ihrer Anwendung das Gleiche tun. Diese Tests können dann verworfen werden, sobald der Übergang abgeschlossen ist und die OpenTok-Version Ihrer Anwendung entfernt wurde.
Support-Kanäle
Allgemeine Hilfe und Diskussionen zur Umstellung auf Vonage Video finden Sie unter die Seite #video-api Kanal auf unserem Community Slack, wo Sie Antworten von Vonage-Mitarbeitern und anderen Benutzern erhalten können.
Sie können uns auch unter X erreichen @VonageDev.
Der Hauptansprechpartner für alle Probleme mit der Video API selbst ist support@api.vonage.com.
Direkte Unterstützung über. Slack: Vonage Entwickler Slack
Wenn Sie einen Fehler im SDK finden, erstellen Sie ein Ticket in ein Problem mit Schritten zur Reproduktion auf Github einreichen
Schließlich verfügt das Videomodul über eine automatisch generierte Dokumentation, die in der wiki Abschnitt des GitHub-Repos.