.NET用Vonageビデオ移行ガイド
からの移行 Opentok-.NET-SDK への vonage-dotnet-sdk
はじめに
目的
この文書の目的は、OpenTok .NET Server SDK から Vonage .NET Server SDK への移行の出発点を提供することです。 Vonage .NET Server SDK への移行の出発点を提供することです。
スコープ
この文書では、少なくとも次のバージョンを使用していることを前提としています。 バージョン 3.14.0 またはそれ以降 その OpenTok .NET SDK.
Video API は、.NET Server SDK に追加されました。 SDKに追加された。 6.14.0. 最新バージョンのVonage .NET SDKを使用する必要があります。 このSDKは ギットハブ または ニューゲット.
前提条件
本ガイドは、プロのソフトウェア・エンジニアを対象としています。 少なくとも、.NET、一般的な.NET開発者ツール、ビルドシステム、Git(または他のバージョン管理システム)の基本的な能力があることを前提としています。 または他のバージョン管理システム)の少なくとも基本的な能力を想定しています。 .NETコードの読み書き、プロジェクトの依存関係の管理、.NETプロジェクトのデプロイと実行に慣れている必要があります。 プロジェクトのデプロイと実行に慣れている必要があります。 .NET言語、プラットフォーム、関連ツールの紹介は、このドキュメントの範囲を超えています。
リソース
以下のリンクは、この文書に付随してさらに読む場合や、この文書に記載されていないことを参照する場合に便利です。 を参照してください:
ボネージ
- Vonage ビデオ・ドキュメント
- Vonage Video API 仕様
- Vonage .NET Server SDK ビデオ使用ガイド
- Vonage .NET Server SDK 動画ソースコード
- Vonage .NET サーバー SDK GitHub リポジトリ
- NuGet で公開された Vonage .NET Server SDK の成果物
トクボックス
- OpenTok API REST リファレンス
- OpenTok .NET Server SDK ドキュメント
- OpenTok .NET Server SDKソースコード
- OpenTok .NET サーバー SDK GitHub リポジトリ
- OpenTok .NET Server SDKがNuGetでアーティファクトを公開
移行計画
OpenTokからVonage Videoに移行する前に、タスクの規模を考慮し、現実的な期待値を設定する必要があります。 現実的な期待値を設定する必要があります。
影響を評価する
最初に答えるべき質問は、あなたのアプリケーションのコードのうち、どれだけが OpenTok SDK に依存しているか、ということです。
SDKが直接使用されているすべてのファイルのリストを作成してください。
つまり .cs ファイルには using OpenTokSDK を参照してください。
プロジェクト内のファイルを検索して、以下のステートメントを見つけることができます。 using OpenTokSDK IDE(Ctrl+Shift+F)またはコマンドラインツール
コマンドラインツールを使って、影響を受けるファイルを特定する。
タイムライン
移行を完了するのに必要な時間を考慮してください。これは、そのプロジェクトとその影響、そしてテストに関するあなたの経験に左右される。 その影響、そしてテストに左右される。OpenTokとVonage Videoの同等性を検証できるように、優れたテスト・スイートを用意することが重要です。 OpenTokとVonage Videoの間の同等性を検証できるように、優れたテスト・スイートを用意することが重要です。移行完了までにかかる時間は、OpenTokとVonage Videoの間で同等であることを確認できる場所の数にほぼ比例します。 OpenTok SDK がコードで使用されている場所の数と、使用されている機能の種類に比例します。APIコールによっては を置き換えるのは他のものより簡単です。
バージョニング
OpenTokとVonage Videoは2つの異なる製品です。
バージョン管理システム上に移行用の一時的なブランチを作成し、既存のプロジェクトを壊すことなく、少しずつ頻繁に変更を加えられるようにする。 を少しずつ、そして頻繁に変更できるようにします。また、既存のプロジェクトのテストを を使うこともできます。移行用ブランチをメインブランチにマージするのは、変換が完了してからにするのが理想的です。 をメインブランチにマージするのが理想的です。
主な変更点と考察
新機能と規格
Vonage Video APIはOpenTokと同等の機能を持ち、.NET SDKはAPI仕様に沿うよう積極的にメンテナンスされています。 仕様に沿うように積極的にメンテナンスされています。それでも、OpenTokとVonage .NET SDKにはいくつかの大きな違いがあります。
そのひとつが、プリミティブ型の代わりに適切なデータモデルに頼ることだ。その目的は を避けるためである。プリミティブオブセッション「メソッド・シグネチャにより多くのドメイン・コンテキストを与えることによって メソッド・シグネチャに
もうひとつは モナッズ,
モナドは、従来の例外処理よりも機能的なエラー処理アプローチを提供します。
モナドは開発者にとっては新鮮な概念かもしれないが、例外を発生させない一方で、透明性や予測可能性といった貴重な利点をもたらす。
をもたらします。
例えば、新しいセッションを作成すると Task<Result<CreateSessionResponse>> - a Result<T> 失敗するかもしれない
失敗する可能性のある操作の結果を表し、次の2つの可能な状態を公開する。 Success または Failure.この特殊なシナリオでは
シナリオでは Result には CreateSessionResponse 操作に成功した場合 または アン IResultFailure もし
失敗した場合
パッケージ・アップデート
まず、プロジェクトにVonage .NET SDKをインストールまたは更新する必要があります。
IDEに統合されたNuGetパッケージ・マネージャを使用して行うことができます。 Vonageを実行するか、次の
コマンドを実行する: dotnet add package Vonage.
段階的な移行のために、OpenTok と Vonage の両方の依存関係をプロジェクトに含めることができます。 OpenTok SDKは古いバージョンの依存関係を使用する傾向があり、実行時に問題が発生する可能性があります。 OpenTok SDK は古いバージョンの依存関係を使用する傾向があり、実行時に問題を引き起こす可能性があるからです。
認証の変更
OpenTok と Vonage .NET Server SDKs の認証はあなたのために処理されます。
認証情報を入力するだけです。OpenTok では API キーとシークレットが必要ですが、Vonage .NET SDK の Video API では API キーとシークレットが必要です。
では、アプリケーションIDとその秘密鍵を提供する必要があります。Vonage と OpenTok の両方がトークン・ベースの認証を使用しているのに対し
トークンベースの認証ですが、Vonage のトークンは JWT 一方、OpenTokはカスタムフォーマットを使用しています。一方
APIキーとシークレットを VonageClient OpenTokと同じように、これはVonageの他のAPIに使用されます。
ビデオではありません。そのため、アプリケーションを作成するか、既存のアプリケーションを使用する必要があります。
からアプリケーションを作成できます。 Vonageダッシュボード. アプリケーションが アプリケーションがビデオ機能を有効にしていることを確認してください。 既存のアプリケーションの「Edit(編集)」をクリックすると、そのアプリケーションの機能とクレデンシャルが表示されます。 クレデンシャルを表示します。ここから「Generate public and private key」をクリックする。をクリックする。 を行うたびに認証情報が変更され、既存の鍵ペアが壊れてしまうからです。これをクリックすると、秘密鍵のダウンロードが開始されます。 秘密鍵のダウンロードが開始されます。このファイルをテスト用に安全な場所に置いてください。 決して秘密鍵を共有したり、公開したりしないでください! 秘密鍵は 秘密鍵は事実上、あなたのアプリケーションの「パスワード」ですから、慎重に扱うべきです。以下のことをお勧めします。 アプリケーションIDと秘密鍵を設定ファイルまたはKeyVaultに追加することを推奨します。参照 もっと見る これ SDKの設定方法について
アプリケーションの設定に関する詳しいガイダンスについては をご覧ください。 入門ガイド.
使用方法
参照 .NET SDK README をご覧ください。
その代わりにOpenTokがある:
var client = new OpenTok(apiKey, apiSecret);
以下を実行する:
// In your startup.cs or equivalent, register all Vonage services using your configuration
builder.Services.AddVonageClientScoped(builder.Configuration);
// In any component, inject our IVideoClient (preferred)
public WeatherForecastController(IVideoClient client)
{
this.client = client;
}
// Or our VonageClient
public WeatherForecastController(VonageClient client)
{
this.client = client.VideoClient;
}
にアクセスできるようになります。 IVideoClient インスタンスでは
例えば Video API.
詳しい使用方法は その .NET Sever SDK ビデオガイド.
メソッドの変更
の間でメソッドにいくつかの変更がある。 OpenTok SDKとVideo APIの実装は、以下のとおりです。 Vonage SDK。
- どのような操作でも
Result<T>操作が成功したか失敗したかを示す。詳しくは をご覧ください。 モナッズ セクションを参照されたい。 - リクエストを作成すると、ビルダーに頼らざるを得なくなる(例.
CreateSessionRequest.Build()...) - すべてのビルダーは リクエストをビルドする前に、必須パラメータをガイドし、オプションパラメータを提案する流暢なAPIを提供します。 を使って.Create(). - 以前はメソッドには同期バージョンと非同期バージョンの両方があった。同期バージョンは
は削除され、非同期のものだけが残っています。それでも同期プロセスで実行したい場合は
を使用してください。
Task.Wait()またはTask.Result返ってきたTaskオブジェクトがある。 - いくつかのメソッドは、わかりやすくするため、あるいはそのメソッドが何をするのかをよりよく反映させるために、名前が変更されたり、移動されたりしている。以下はその例である。 以下に示す:
| OpenTokメソッド名 | Vonage ビデオ・メソッド名 |
|---|---|
OpenTok.GenerateToken | VideoTokenGenerator.GenerateToken |
OpenTok.CreateSessionAsync | VonageClient.SessionClient.CreateSessionAsync |
OpenTok.StartArchiveAsync | VonageClient.ArchiveClient.CreateArchiveAsync |
OpenTok.StopArchiveAsync | VonageClient.ArchiveClient.StopArchiveAsync |
OpenTok.GetArchiveAsync | VonageClient.ArchiveClient.GetArchiveAsync |
OpenTok.DeleteArchiveAsync | VonageClient.ArchiveClient.DeleteArchiveAsync |
OpenTok.ListArchivesAsync | VonageClient.ArchiveClient.GetArchivesAsync |
OpenTok.AddStreamToArchiveAsync | VonageClient.ArchiveClient.AddStreamAsync |
OpenTok.RemoveStreamToArchiveAsync | VonageClient.ArchiveClient.RemoveStreamAsync |
OpenTok.GetStreamAsync | VonageClient.BroadcastClient.GetStreamAsync |
OpenTok.ListStreamsAsync | VonageClient.BroadcastClient.GetStreamsAsync |
OpenTok.ForceMuteStreamAsync | VonageClient.ModerationClient.MuteStreamAsync |
OpenTok.ForceMuteAllAsync | VonageClient.ModerationClient.MuteStreamsAsync |
OpenTok.ForceDisconnectAsync | VonageClient.ModerationClient.DisconnectConnectionAsync |
OpenTok.StartBroadcastAsync | VonageClient.BroadcastClient.StartBroadcastAsync |
OpenTok.StopBroadcastAsync | VonageClient.BroadcastClient.StopBroadcastAsync |
OpenTok.GetBroadcastAsync | VonageClient.BroadcastClient.GetBroadcastAsync |
OpenTok.SetBroadcastLayout | VonageClient.BroadcastClient.ChangeBroadcastLayoutAsync |
OpenTok.SignalAsync | VonageClient.SignalingClient.SendSignalAsyncAsync |
OpenTok.PlayDTMFAsync | VonageClient.SipClient.PlayToneIntoCallAsync |
OpenTok.DialAsync | VonageClient.SipClient.InitiateCallAsynb |
マイグレーション戦略
インクリメンタル・マイグレーション
あるユースケースから別のユースケースへと移行し、 a " 安定" 状態になるたびにコミットすることをお勧めします。 もちろん、OpenTokとVonage Video APIの両方を一時的に共存させる必要があります。
このようなインクリメンタル・プロセスの間、アプリケーション全体が完全に機能しなくなることにご注意ください。 OpenTokとVonage Video APIは完全に異なるシステムです。
まず、特定の 'Video Adapter' を作成することから始めるべきです。 現在のOpenTokとのやりとりをすべてグループ化し、OpenTokの使用をVonage Video APIに一つずつ置き換えていく。
別の方法としては、その「ビデオ・アダプター」を、その移行専用の新しい「Vonageビデオ・アダプター」に複製してから、その2つのアダプターを一緒に交換することもできます。 に複製し、この2つのアダプタを一緒にスワップすることです。詳しくは その ストラングラー・フィグ・パターン
テストに関する推奨事項
移行中も移行後も、スムーズな移行には徹底したテストが欠かせない。これには単体テスト テストだけでなく、統合テストや回帰テストも含まれます。また、移行前と移行後に少なくとも1回は、アプリケーションフローを手動でテストする価値があります。 移行前と移行後に、少なくとも一度はアプリケーションフローを手動でテストする価値があります。 テストが発見できなかったかもしれない問題を発見するためです。等価テストを作成することを検討してもよいでしょう。これは アプリケーションの OpenTok バージョンと Vonage Video バージョンの両方が同じことを行うことを保証するスイートです。これらは 移行が完了し、OpenTok バージョンのアプリケーションが削除されたら、これらのテストは破棄されます。
トラブルシューティング&サポート
よくあるご質問
から値を抽出するには Result<T>?
に説明がある。 SDKのREADME.
それでも例外を使いたい場合は?
に説明がある。 SDKのREADME.
サポート・チャンネル
Vonage Videoへの移行に関する一般的なヘルプやディスカッションについては、以下をご覧ください。 をご覧ください。 コミュニティSlackの#Video-APIチャンネルここで Vonage のスタッフや他のユーザーから回答を得ることができます。また X VonageDev. Video API 自体に問題がある場合の主な連絡先は次のとおりです。 support@api.vonage.com. SDKのバグを発見した場合は お願い GitHubに再現するための手順をissueとして提出する。.