すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud DNS:Alibaba CloudパブリックDNS SDKをUnityに統合するためのベストプラクティス

最終更新日:Oct 18, 2024

このトピックでは、Alibaba Cloud Public DNS SDKをUnityに統合する方法について説明します。

概要

Unityはコンテンツ作成エンジンです。 開発者は、Unityを使用して、2Dおよび3Dゲーム、2Dおよび3Dアプリケーション、仮想現実 (VR) 、拡張現実 (AR) 、モバイルアプリ、webフロントエンド、およびリアルタイムの映画レンダリングソフトウェアを開発できます。 Unityは、開発者がアイデアを実現するのに役立ちます。

Alibaba Cloudは、開発者がUnityでAlibaba Cloud Public DNS SDKを統合して使用できるようにするためのPdnsUnityDemoソースコードを提供しています。 ソースコードは、Alibaba CloudパブリックDNSのUnityプラグインを提供します。

重要

デモプロジェクトPdnsUnityDemoは、Unity 2019.4.21 f1c1バージョンを使用します。 UnityプラグインはAssets/Pluginsディレクトリに保存されます。 Alibaba Cloud DNS SDKを使用してプラグインを作成することもできます。 プラグインは、カスタムGradleファイルとProguardファイルを使用します。 プロジェクトの他の部分にカスタムファイルを使用する場合は、ファイルの内容をマージします。

統合方法

  1. UnityプロジェクトのPluginsフォルダーにファイルをインポートします。

デモプロジェクトPdnsUnityDemoのPluginsフォルダー内のファイルを、UnityプロジェクトAssetsの下のPluginsフォルダーにコピーします。

  1. パラメーターを設定します。

AlipdnsHelper.setAccountId("accountId");
AlipdnsHelper.setAccessKeyId("accessKeyId");
AlipdnsHelper.setAccesskeySecret("accesskeySecret");
AlipdnsHelper.setCacheEnable(true);
AlipdnsHelper.setSchedulePrefetchEnable(true);
AlipdnsHelper.setIspEnable(true);
AlipdnsHelper.setMaxCacheTTL(3600);
AlipdnsHelper.setMaxNegativeCache(60);
AlipdnsHelper.setScheme(1);
AlipdnsHelper.setShortEnable(false);
AlipdnsHelper.setSpeedTestEnable(true);
AlipdnsHelper.setCacheCountLimit(100);
AlipdnsHelper.setSpeedPort(80);
// Pre-resolve domain names.
List<string> list = new List<string>();
list.Add("Domain name 1");
list.Add("Domain name 2");
AlipdnsHelper.setPreloadDomains(list);

API リファレンス

インターフェイスクラスはAdipdnsHelper. csです。

  1. accountIdパラメーターを設定します。 このパラメーターはSDKに渡す必要があります。 accountIdパラメーターは、アカウントの登録後にAlibaba Cloud DNSコンソールで自動的に生成されるアカウントIDを指定します。

public static void setAccountId(string accountId)
  1. accessKeyIdおよびaccesskeySecretパラメーターを設定します。 これらのパラメーターはSDKに渡す必要があります。 これらのパラメーターは、Alibaba Cloud DNSコンソールで認証機能が有効になった後に生成されます。 認証機能を有効にして、ユーザーIDのセキュリティを確保し、権限のない第三者によるユーザーIDの盗難を防ぐことができます。

public static void setAccessKeyId(string accessKeyId)
public static void setAccesskeySecret(string accesskeySecret)
  1. キャッシュ機能を有効にします。 この機能が有効になっている場合、ドメイン名が最初に解決されたときに取得されたデータはキャッシュに保存され、キャッシュされたデータは後続のDNS要求に対して優先的に返されます。 これにより、DNS解決を大幅に高速化できます。

public static void setCacheEnable(bool enable)
  1. 期限切れのキャッシュデータの定期更新を有効にするかどうかを指定します。 この機能が有効になっている場合、SDKは毎分期限切れのキャッシュデータを新しいデータに自動的に置き換えます。 このようにして、キャッシュ内のデータを適時に更新することができる。 ただし、DNS解決の数とクライアントトラフィックの消費が増加する可能性があります。

public static void setSchedulePrefetchEnable(bool enable)
  1. ISPネットワークに基づいてドメイン名キャッシュを有効にするかどうかを指定します。 この機能を有効にすると、キャッシュされたドメイン名解決の結果はネットワークごとに別々に保存されます。 この機能が有効になっていない場合、同じキャッシュドメイン名解決結果が異なるネットワークで使用されます。

public static void setIspEnable(bool enable)
  1. キャッシュの最大有効期間 (TTL) を指定します。 maxCacheTTLパラメーターを設定した場合、キャッシュ用のTTLはこのパラメーターの値を超えることはできません。

    SDKのこのパラメーターのデフォルト値は3600です。 単位は秒です。

public static void setMaxCacheTTL(double maxCacheTTL)
  1. ネガティブキャッシュの最大TTLを指定します。 maxNegativeCacheパラメーターを設定した場合、ネガティブキャッシュのTTLはこのパラメーターの値を超えることはできません。

    SDKのこのパラメーターのデフォルト値は30です。 単位は秒です。

public static void setMaxNegativeCache(double maxNegativeCache)
  1. schemeパラメーターを設定して、DNS解決にHTTPまたはHTTPSを使用するかどうかを指定します。 schemeパラメーターのデフォルト値は0です。 値0は、DNS解決がHTTP上で実行されることを示す。 schemeパラメーターを1に設定すると、DNS解決はHTTPS経由で実行されます。 HTTPを介したDNS解決はHTTPSを介したDNS解決よりも高速であるため、デフォルト値を保持することを推奨します。

public static void setScheme(int scheme)
  1. ショートモードを有効にするかどうかを指定します。 ショートモードを有効にした場合、Alibaba Cloud Public DNSのDoH用のJSON APIによって返されるデータは、IPアドレスの配列です。 ショートモードを有効にしない場合、完全なJSON構造が返されます。 デフォルトでは、SDKは完全なJSON構造を使用します。

public static void setShortEnable(bool enable)
  1. IP優先機能を有効にするかどうかを指定します。 この機能を有効にすると、解決結果配列はIPアドレスのアクセス速度に基づいて降順に並べられます。

public static void setSpeedTestEnable(bool enable)
  1. 解決結果をキャッシュできるドメイン名の最大数を指定します。 有効な値: 100〜500。

public static void setCacheCountLimit(int cacheCountLimit)
  1. IPアドレスのアクセス速度テスト用のポートを指定します。 このポートは、ソケット検出用に指定したポートです。

public static void setSpeedPort(int speedPort)
  1. ドメイン名をプリロードします。 SDKによって提供されるキャッシュ機能は、効率的な方法で解決されたドメイン名を解決するのに役立ちます。 アプリの起動後に解決するドメイン名をプリロードすることをお勧めします。

public static void setPreloadDomains(List<string> hosts)
  1. IPv4-only、IPv6-only、IPv4/IPv6デュアルスタックなど、現在のネットワーク環境でサポートされているIPアドレスの種類を自動的に検出し、現在のネットワーク環境でサポートされているIPアドレスの配列を遅延なくキャッシュから取得します。 キャッシュにデータが存在しない場合、またはキャッシュ内のデータが期限切れで、expiredIPEnabledパラメーターがfalseに設定されている場合、空の配列が返されます。

@ paramホスト解決するドメイン名。

@ expiredIPEnabled期限切れのIPアドレスを返すかどうかを指定します。

public static List<string> getIpsByCacheWithDomain(string host, bool expiredIPEnabled)
  1. 遅延なしでキャッシュからIPv4アドレス解決結果を取得します。 キャッシュにデータが存在しない場合、またはキャッシュ内のデータが期限切れで、expiredIPEnabledパラメーターがfalseに設定されている場合、空の配列が返されます。

@ paramホスト解決するドメイン名。

@ expiredIPEnabled期限切れのIPアドレスを返すかどうかを指定します。

public static List<string> getIpv4ByCacheWithDomain(string host, bool expiredIPEnabled)
  1. IPv6アドレス解決結果をキャッシュから遅延なく取得します。 キャッシュにデータが存在しない場合、またはキャッシュ内のデータが期限切れで、expiredIPEnabledパラメーターがfalseに設定されている場合、空の配列が返されます。

@ paramホスト解決するドメイン名。

@ expiredIPEnabled期限切れのIPアドレスを返すかどうかを指定します。

public static List<string> getIpv6ByCacheWithDomain(string host, bool expiredIPEnabled)
  1. Alibaba CloudパブリックDNSの成功したクエリと失敗したクエリの統計を取得します。

public static string getRequestReportInfo()
説明

  1. このトピックでは、Alibaba Cloud Public DNS SDK for AndroidまたはiOSをUnityに統合するためのリファレンスのみを提供します。

  2. Alibaba Cloud Public DNS SDK For AndroidまたはiOSを統合して使用する方法の詳細については、「SDK for Android開発者ガイド」または「SDK for iOS開発者ガイド」をご参照ください。

  3. Alibaba Cloud Public DNS SDK For AndroidまたはiOSをUnityに統合するための完全なコードについては、「PdnsUnityDemoソースコード」をご参照ください。