リモートサービス
Hive SDKは、アプリサーバーで本来行うべきタスクをHiveコンソールを通じてリモートで実行できるリモートサービスを提供します。プロビジョニングで提供されるリモートサービスは以下の通りです。
- リモート設定
- リモートログ
リモート構成¶
アプリを操作する際、アプリサーバーのURLはアプリのバージョンによって異なる場合があります。リモート設定は、アプリサーバーにアクセスすることなく、サーバーURL設定をリモートで変更できる機能です。開発者は、Hive コンソールにサーバーURL情報を登録し、アプリバージョンごとにサーバーをマッピングおよび管理できます。
Note
リモート設定は、Hive コンソールを通じてアプリサーバーで変更する必要があるサーバー設定をリモートで変更できる機能です。現在は、アプリサーバーのURLをリモートで変更する機能のみをサポートしています。今後、他のリモート設定機能が追加される予定です。
アプリサーバーのURLは、各AppID、アプリバージョン、およびサーバーごとに異なるように変更できます。リモート構成を使用するには、まずHiveコンソールにサーバーURLを登録する必要があります。
アプリクライアントからConfiguration.getMetaData
を呼び出すと、Hiveコンソールに登録または変更されたサーバーURLをString値として受け取ることができます。ここにサーバーURLを呼び出す例のコードがあります。
APIリファレンス: HiveConfiguration getMetaData
APIリファレンス: Configuration:: getMetaData
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
// data key
string key = "game_server_url";
// Whether data is updated
bool forceReload = false;
// メタデータ呼び出し
Configuration::getMetaData(key, forceReload, [=](ResultAPI const & result, string value) {
if (result.isSuccess()) {
// 呼び出し成功
}
});
APIリファレンス: Configuration.getMetaData
import com.hive.Configuration;
import com.hive.ResultAPI;
// データキー
val key = "game_server_url"
// データが更新されているか
val forceReload = false
// メタデータ呼び出し
Configuration.getMetaData(key, forceReload, object : Configuration.GetMetaDataListener {
override fun onGetMetaData(result: ResultAPI, data: String) {
if (result.isSuccess) {
// 呼び出し成功
}
}
})
APIリファレンス: Configuration.INSTANCE .getMetaData
APIリファレンス: ConfigurationInterface.getMetaData
APIリファレンス: HIVEConfiguration getMegaData
#include "HiveConfiguration.h"
// データキー
FString Key = TEXT("game_server_url");
// データ更新ステータス
bool bForceReload = false;
// メタデータ呼び出し
FHiveConfiguration::GetMetaData(Key, bForceReload, FHiveConfigurationOnMetaDataDelegate::CreateLambda([this](const FHiveResultAPI& Result, const FString& Value) {
if (Result.IsSuccess()) {
// 呼び出し成功
}
}));
キャッシュされた値の使用¶
Hive SDKは、初期化プロセス中にHiveコンソールに以前入力されたサーバーURLを読み取り、それをアプリクライアントのためにキャッシュします。したがって、HiveコンソールでサーバーURLを変更せずに以前入力された値を取得したい場合は、このキャッシュされた値を使用してネットワークコストを削減するために、Configuration.getMetaData
を呼び出す際にforceReload
をfalse
に設定してください。
サーバーURLをHiveコンソールで変更し、その変更されたURLをアプリに反映させる必要がある場合は、Configuration.getMetaData
を呼び出す際にforceReload
をtrue
に設定してください。これにより、アプリクライアントの既存のキャッシュされたサーバーURLが削除され、Hiveサーバーから最新のサーバーURLが取得されます。この呼び出しパターンは、一般的にアプリが再起動されるときに使用されます。
リモートログ¶
リモートロギングは、アプリサーバーから収集する必要があるログをHive SDKを介してリモートで収集できる機能です。リモートロギングを使用することで、リモートでデバッグログを受け取ることができます。たとえば、Hive コンソールに特定のアプリユーザーを登録すると、このユーザーに関連する問題が発生した際に、アプリサーバーではなくリモート環境でデバッグログを確認できます。
特定のユーザーを指定してログを収集する場合、このユーザーがアプリを使用しているときに蓄積されたアプリのログとHiveのログが収集され、Google Cloudにロードされます。開発者は、リモートで収集されたログを受信して監視やデバッグに使用できます。リモートロギングを使用するには、まずHiveコンソールでログを収集するユーザーを設定する必要があります。
どのように機能するか¶
リモートログ操作は次のように機能します。
ターゲットユーザー設定¶
ログを収集できるユーザーは、アプリを少なくとも一度実行した後にDIDを発行したユーザーです(つまり、Hive SDKが少なくとも一度初期化されている必要があります)。ただし、アプリの実行プロセス中にHive SDKを初期化する前にクラッシュやエラーが発生した場合、このユーザーからログを収集することはできません。
ログの収集¶
リモートロギングを有効にすると、Hive コンソールに入力されたログ収集の期間中、Hive ログとアプリログが収集されます。
Warning
ログを集めすぎると、リソースがネットワークトラフィックやログ処理に集中し、アプリのパフォーマンスに影響を与える可能性があります。ループ内で発生する繰り返しのログを最小限に抑えるか、収集のためにそれらを1つのログに統合することをお勧めします。
Hive ログ¶
Hive ログは、Hive SDK コード内でデフォルトで収集されるログです。アプリによって制御することはできません。
アプリログ¶
アプリログは、Hive SDKによって提供されるLogger.log
呼び出しをアプリクライアントコードに挿入することで取得されるログです。必要な値を収集するために、アプリクライアントコード内の希望する場所を選択できます。以下の例のように、希望する場所にコードを挿入してください。
APIリファレンス: Logger.log
APIリファレンス: Logger::log
APIリファレンス: Logger.i
APIリファレンス: LogInterface.log
APIリファレンス: Objective-C