コンテンツにスキップ

リモートサービス

Hive SDKは、アプリサーバーで本来行うべきタスクをHiveコンソールを通じてリモートで実行できるリモートサービスを提供します。プロビジョニングで提供されるリモートサービスは以下の通りです。

  • リモート設定
  • リモートログ

リモート構成

アプリを操作する際、アプリサーバーのURLはアプリのバージョンによって異なる場合があります。リモート設定は、アプリサーバーにアクセスすることなく、サーバーURL設定をリモートで変更できる機能です。開発者は、Hive コンソールにサーバーURL情報を登録し、アプリバージョンごとにサーバーをマッピングおよび管理できます。

Note

リモート設定は、Hive コンソールを通じてアプリサーバーで変更する必要があるサーバー設定をリモートで変更できる機能です。現在は、アプリサーバーのURLをリモートで変更する機能のみをサポートしています。今後、他のリモート設定機能が追加される予定です。

アプリサーバーのURLは、各AppID、アプリバージョン、およびサーバーごとに異なるように変更できます。リモート構成を使用するには、まずHiveコンソールにサーバーURLを登録する必要があります。

アプリクライアントからConfiguration.getMetaDataを呼び出すと、Hiveコンソールに登録または変更されたサーバーURLをString値として受け取ることができます。ここにサーバーURLを呼び出す例のコードがあります。

APIリファレンス: HiveConfiguration getMetaData

using hive;    
    // データキー    
    String key = "game_server_url";    
    // データが更新されているか    
    Boolean forceReload = false;    
    // メタデータ呼び出し    
    Configuration.getMetaData(key, forceReload, (ResultAPI result, String value) => {    
    if (result.isSuccess()) {    
    // 呼び出し成功    
    }    
});

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

import com.hive.Configuration;    
    import com.hive.ResultAPI;    
    // data key    
    String key = "game_server_url";    
    // Whether data is updated    
    boolean forceReload = false;    
    // metadata call    
    Configuration.INSTANCE.getMetaData(key, forceReload, (result, data) -> {    
         if (result.isSuccess()) {    
             // call successful    
         }    
});

APIリファレンス: ConfigurationInterface.getMetaData

import HIVEService    
    // data key    
    let key = "game_server_url"    
    // Whether data is updated    
    let forceReload = false;    

    // メタデータ呼び出し    
    ConfigurationInterface.getMetaData(key, forceReload: forceReload) { result, value in    
         if result.isSuccess() {    
             // 呼び出し成功    
         }    
}

APIリファレンス: HIVEConfiguration getMegaData

#import <HIVEService/HIVEService-Swift.h>    
    // データキー    
    NSString *key = @"game_server_url";    
    // データが更新されているか    
    BOOL forceload = NO;    
    // メタデータ呼び出し    
    [HIVEConfiguration getMegaData: key forceReload: forceReload handler: ^(HIVEResultAPI *result, NSString *value) {    
    if ([result isSuccess]) {    
    // 呼び出し成功    
    }    
}];
#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を呼び出す際にforceReloadfalseに設定してください。

サーバーURLをHiveコンソールで変更し、その変更されたURLをアプリに反映させる必要がある場合は、Configuration.getMetaDataを呼び出す際にforceReloadtrueに設定してください。これにより、アプリクライアントの既存のキャッシュされたサーバー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

using hive;    
Logger.log("Enter logging contents");

APIリファレンス: Logger::log

    #include <HIVE_SDK_Plugin/HIVE_CPP.h>    
        using namespace std;    
        using namespace hive;    
    Logger::log("Enter logging contents");

APIリファレンス: Logger.i

import com.hive.Logger;    
Logger.INSTANCE.i("Enter logging contents");

APIリファレンス: LogInterface.log

import HIVEBase    
LogInterface.log(sourceInfo: "Log source information (class, method name)", type: .Info, tag: "Log tag", msg: "Log message")

APIリファレンス: Objective-C

#import <HIVEBase/HIVEBase-Swift.h>

[HIVELogger logWithSourceInfo:@"ログソース情報(クラス、メソッド名)" type: LogTypeInfo tag: @"ログタグ" msg: @"ログメッセージ"];
#include "HiveLogger.h"

FHiveLogger::Log(TEXT("ログ内容入力"));