遠端服務
Hive SDK 提供了一個遠程服務,允許您通過 Hive 控制台遠程執行原本應在應用伺服器上完成的任務。提供的遠程服務如下。
- 遠端配置
- 遠端日誌
遠端配置¶
在操作應用程式時,應用伺服器的 URL 可能會根據應用程式版本而有所不同。遠端配置是一項功能,允許您在不訪問應用伺服器的情況下遠程更改伺服器 URL 設定。開發人員可以在 Hive 控制台中註冊伺服器 URL 資訊,並根據應用程式版本映射和管理伺服器。
Note
遠端配置是一項功能,允許您通過 Hive 控制台遠端修改需要在應用伺服器上更改的伺服器設置,目前僅支持遠端修改應用伺服器 URL 的能力。未來將添加其他遠端配置功能。
應用伺服器的 URL 可以根據每個 AppID、應用版本和伺服器進行不同的修改。要使用遠端配置,您必須 首先在 Hive 控制台中註冊伺服器 URL。
當你從應用程式客戶端呼叫 Configuration.getMetaData
時,你可以接收到在 Hive 控制台中註冊或修改的伺服器 URL 作為字串值。這裡有一個呼叫伺服器 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;
// data key
val key = "game_server_url"
// Whether data is updated
val forceReload = false
// metadata call
Configuration.getMetaData(key, forceReload, object : Configuration.GetMetaDataListener {
override fun onGetMetaData(result: ResultAPI, data: String) {
if (result.isSuccess) {
// call successful
}
}
})
API 參考: HIVEConfiguration getMegaData
#import <HIVEService/HIVEService-Swift.h>
// data key
NSString *key = @"game_server_url";
// Whether data is updated
BOOL forceload = NO;
// metadata call
[HIVEConfiguration getMegaData: key forceReload: forceReload handler: ^(HIVEResultAPI *result, NSString *value) {
if ([result isSuccess]) {
// call successful
}
}];
#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
。
如果您在 Hive 控制台中修改了服务器 URL,并需要在应用程序中反映此修改后的 URL,请在调用 Configuration.getMetaData
时将 forceReload
设置为 true
。这将删除应用客户端中现有的缓存服务器 URL,并从 Hive 服务器获取最新的服务器 URL。此调用模式通常在应用程序重新启动时使用。
遠端日誌記錄¶
遠端日誌記錄是一項功能,允許需要從應用伺服器收集的日誌通過 Hive SDK 遠程收集。通過使用遠端日誌記錄,您可以遠程接收調試日誌。例如,如果您在 Hive 控制台中註冊了特定的應用用戶,當與該用戶相關的問題發生時,您可以在遠程環境中檢查調試日誌,而不是在應用伺服器上。
當您指定特定用戶以收集日誌時,當該用戶使用應用程式時,應用程式日誌和 Hive 日誌將被收集並加載到 Google Cloud。開發人員可以接收遠程收集的日誌以進行監控和調試。要使用遠程日誌記錄,您必須 首先在 Hive 控制台中設置用戶以收集日誌。
它是如何運作的¶
遠端日誌操作的運作方式如下。
目標用戶設置¶
可以收集日志的用户是那些在至少运行应用程序一次后发出了DID的用户(即,Hive SDK 至少已初始化一次)。但是,如果在应用程序执行过程中在初始化 Hive SDK 之前发生了崩溃或错误,则无法从该用户收集日志。
收集日誌¶
啟用遠程日誌記錄將收集 Hive 日誌和應用程序日誌,收集日誌的持續時間在 Hive 控制台中輸入。
Warning
如果您收集太多日志,资源可能会集中在网络流量和日志处理上,这可能会影响应用程序性能。建议尽量减少在循环中出现的重复日志,或将它们合并为单个日志进行收集。
Hive 日誌¶
Hive 日誌是由 Hive SDK 代碼默認收集的日誌。它們無法由應用程序控制。
應用程式日誌¶
應用程式日誌是通過將 Hive SDK 提供的 Logger.log
調用插入到應用程式客戶端代碼中獲得的日誌。您可以選擇應用程式客戶端代碼中的所需位置來收集所需的值。在所需位置插入如下示例代碼。
API 參考: Logger.log
API 參考: Logger::log
API 參考: Logger.i
API 參考: LogInterface.log
API 參考: Objective-C