@xmobitea/gn-typescript-client
Version:
GearN Typescript Client SDK by XmobiTea (Pro)
261 lines (260 loc) • 12.6 kB
JavaScript
const VERSION = "2.6";
import { GNDebug } from "./logger/GNDebug";
import { GNSupport } from "./helper/GNSupport";
import { NetworkingPeer } from "./networking/NetworkingPeer";
import { CodeHelper } from "./helper/CodeHelper";
import store from "store";
import { ServiceUpdate } from "./typescript/ServiceUpdate";
import { AuthenticateApi } from "./GNNetworkAuthenticateApi";
import { CharacterPlayerApi } from "./GNNetworkCharacterPlayerApi";
import { ContentApi } from "./GNNetworkContentApi";
import { DashboardApi } from "./GNNetworkDashboardApi";
import { GamePlayerApi } from "./GNNetworkGamePlayerApi";
import { GroupApi } from "./GNNetworkGroupApi";
import { InventoryApi } from "./GNNetworkInventoryApi";
import { MasterPlayerApi } from "./GNNetworkMasterPlayerApi";
import { StoreInventoryApi } from "./GNNetworkStoreInventoryApi";
import { ConverterService } from "./helper/ConverterService";
import { MultiplayerApi } from "./GNNetworkMultiplayerApi";
import { CloudScriptApi } from "./GNNetworkCloudScriptApi";
export class GNNetwork {
static getGNServerSettings() {
return GNNetwork.gnServerSettings;
}
static getPing() {
return GNNetwork.peer != null ? GNNetwork.peer.getPing() : -1;
}
static getSocketSId() {
return GNNetwork.peer != null ? GNNetwork.peer.getClientId() : "";
}
static sendRequestAuthSocket() {
return GNNetwork.peer.sendRequestAuthSocket();
}
static isSocketConnected() {
let socketSId = GNNetwork.getSocketSId();
if (socketSId)
return true;
return false;
}
static getServerTimestamp() {
return GNNetwork.peer != null ? GNNetwork.peer.getServerTimestamp() : new Date().getUTCMilliseconds();
}
static getAuthenticateStatus() {
return GNNetwork.peer.authenticateStatus;
}
static getGameId() {
return GNNetwork.peer.gameId;
}
static getPlatform() {
return 17;
}
static init(gnServerSettings) {
if (GNNetwork.gnServerSettings != null) {
GNDebug.log("GNNetwork has been init!");
return;
}
GNSupport.init();
CodeHelper.init();
ConverterService.init();
GNNetwork.gnServerSettings = gnServerSettings;
GNNetwork.initServerSettings();
GNNetwork.initGNDebug();
GNDebug.log("GNNetwork init on " + (GNSupport.isBrowser() ? "browser." : "server.") + " Version: " + GNNetwork.getClientSdkVersion());
GNNetwork.initGNSocketObject();
GNNetwork.peer.authenticateStatus.setAuthToken(store.get(GNNetwork.AUTH_TOKEN_KEY, ""));
GNNetwork.peer.authenticateStatus.setUserId(store.get(GNNetwork.USER_ID_KEY, ""));
GNNetwork.peer.gameId = store.get(GNNetwork.GAME_ID_KEY, "");
GNNetwork.authenticate = new AuthenticateApi();
GNNetwork.characterPlayer = new CharacterPlayerApi();
GNNetwork.content = new ContentApi();
GNNetwork.dashboard = new DashboardApi();
GNNetwork.gamePlayer = new GamePlayerApi();
GNNetwork.group = new GroupApi();
GNNetwork.inventory = new InventoryApi();
GNNetwork.masterPlayer = new MasterPlayerApi();
GNNetwork.storeInventory = new StoreInventoryApi();
GNNetwork.multiplayer = new MultiplayerApi();
GNNetwork.cloudScript = new CloudScriptApi();
}
static setNewAuthenticateStatus(authenticateStatus) {
store.set(GNNetwork.AUTH_TOKEN_KEY, authenticateStatus.getAuthToken());
store.set(GNNetwork.USER_ID_KEY, authenticateStatus.getUserId());
GNNetwork.peer.authenticateStatus.setAuthToken(authenticateStatus.getAuthToken());
GNNetwork.peer.authenticateStatus.setUserId(authenticateStatus.getUserId());
}
static setGameId(gameId) {
store.set(GNNetwork.GAME_ID_KEY, gameId);
GNNetwork.peer.gameId = gameId;
}
static getClientSdkVersion() {
return VERSION;
}
static initServerSettings() {
// gnServerSettings = Resources.Load(GNServerSettings.ResourcesPath) as GNServerSettings;
// if (gnServerSettings == null)
// {
// #if UNITY_EDITOR
// UnityEditor.EditorApplication.ExecuteMenuItem("XmobiTea GN/Open Settings");
// gnServerSettings = Resources.Load(GNServerSettings.ResourcesPath) as GNServerSettings;
// if (gnServerSettings == null) throw new NullReferenceException("Null GN Server Settings, please find it now");
// #endif
// }
}
static initGNDebug() {
if (GNNetwork.gnServerSettings == null)
throw new Error("Null GN Server Settings, please find it now");
GNDebug.setLogType(GNNetwork.gnServerSettings.getLogType());
}
static initGNSocketObject() {
let peer = new NetworkingPeer();
peer.initPeer();
GNNetwork.peer = peer;
let serviceUpdate = new ServiceUpdate();
serviceUpdate.peer = peer;
serviceUpdate.run();
}
static sendViaSocket(requestType, role, request, onResponse, overrideAuthToken, overrideSecretKey, customTags) {
GNNetwork.peer.sendViaSocket(requestType, role, request, onResponse, overrideAuthToken, overrideSecretKey, customTags);
}
static async sendViaSocketAsync(requestType, role, request, overrideAuthToken, overrideSecretKey, customTags) {
return new Promise((resolve) => {
GNNetwork.sendViaSocket(requestType, role, request, (response) => {
resolve(response);
}, overrideAuthToken, overrideSecretKey, customTags);
});
}
static sendViaHttp(requestType, role, request, onResponse, overrideAuthToken, overrideSecretKey, customTags) {
GNNetwork.peer.sendViaHttp(requestType, role, request, onResponse, overrideAuthToken, overrideSecretKey, customTags);
}
static async sendViaHttpAsync(requestType, role, request, overrideAuthToken, overrideSecretKey, customTags) {
return new Promise((resolve) => {
GNNetwork.sendViaHttp(requestType, role, request, (response) => {
resolve(response);
}, overrideAuthToken, overrideSecretKey, customTags);
});
}
static sendViaSocketTRequestTResponse(request, onResponse = null, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls) {
GNNetwork.sendViaSocketTResponse(request.getRequestType(), request.getRole(), request.build(), onResponse, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls);
}
static async sendViaSocketTRequestTResponseAsync(request, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls) {
return new Promise((resolve) => {
GNNetwork.sendViaSocketTRequestTResponse(request, (response) => {
resolve(response);
}, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls);
});
}
static sendViaHttpTRequestTResponse(request, onResponse = null, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls) {
GNNetwork.sendViaHttpTResponse(request.getRequestType(), request.getRole(), request.build(), onResponse, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls);
}
static async sendViaHttpTRequestTResponseAsync(request, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls) {
return new Promise((resolve) => {
GNNetwork.sendViaHttpTRequestTResponse(request, (response) => {
resolve(response);
}, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls);
});
}
static sendViaSocketTResponse(requestType, role, request, onResponse = null, overrideAuthToken = null, overrideSecretKey = null, customTags = null, customOperationResponseCls) {
GNNetwork.sendViaSocket(requestType, role, request, response => {
if (response == null)
return;
let customOperationResponse = new customOperationResponseCls();
customOperationResponse.setupOperationResponse(response);
if (onResponse != null)
onResponse(customOperationResponse);
}, overrideAuthToken, overrideSecretKey, customTags);
}
static async sendViaSocketTResponseAsync(requestType, role, request, overrideAuthToken = null, overrideSecretKey = null, customTags = null, customOperationResponseCls) {
return new Promise((resolve) => {
GNNetwork.sendViaSocketTResponse(requestType, role, request, (response) => {
resolve(response);
}, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls);
});
}
static sendViaHttpTResponse(requestType, role, request, onResponse = null, overrideAuthToken = null, overrideSecretKey = null, customTags = null, customOperationResponseCls) {
GNNetwork.sendViaHttp(requestType, role, request, response => {
if (response == null)
return;
let customOperationResponse = new customOperationResponseCls();
customOperationResponse.setupOperationResponse(response);
if (onResponse != null)
onResponse(customOperationResponse);
}, overrideAuthToken, overrideSecretKey, customTags);
}
static async sendViaHttpTResponseAsync(requestType, role, request, overrideAuthToken = null, overrideSecretKey = null, customTags = null, customOperationResponseCls) {
return new Promise((resolve) => {
GNNetwork.sendViaHttpTResponse(requestType, role, request, (response) => {
resolve(response);
}, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls);
});
}
static connectSocket(_onSocketConnect = null) {
GNNetwork.peer.connectSocket(_onSocketConnect);
}
static disconnectSocket(_onSocketDisconnect = null) {
GNNetwork.peer.disconnectSocket(_onSocketDisconnect);
}
static setOnEventHandler(_onEventHandler) {
GNNetwork.peer.setOnEventHandler(_onEventHandler);
}
static subscriberOnConnectHandler(_onConnectHandler) {
GNNetwork.peer.setOnConnectHandler(_onConnectHandler);
}
static subscriberOnDisconnectHandler(_onDisconnectHandler) {
GNNetwork.peer.setOnDisconnectHandler(_onDisconnectHandler);
}
static unscriberOnConnectHandler(_onConnectHandler) {
GNNetwork.peer.removeOnConnectHandler(_onConnectHandler);
}
static unsubscriberOnDisconnectHandler(_onDisconnectHandler) {
GNNetwork.peer.removeOnDisconnectHandler(_onDisconnectHandler);
}
static subscriberServerEventHandler(serverEventHandler) {
GNNetwork.peer.subscriberServerEventHandler(serverEventHandler);
}
static syncTs(onResponse = null) {
GNNetwork.peer.syncTs(onResponse);
}
static syncTsAsync() {
return new Promise((resolve) => {
GNNetwork.syncTs((response) => {
resolve(response);
});
});
}
static getAuthInfo(authToken, onResponse = null) {
GNNetwork.peer.getAuthInfo(authToken, onResponse);
}
static getAuthInfoAsync(authToken) {
return new Promise((resolve) => {
GNNetwork.getAuthInfo(authToken, (response) => {
resolve(response);
});
});
}
static healthCheck(onResponse = null) {
GNNetwork.peer.healthCheck(onResponse);
}
static healthCheckAsync() {
return new Promise((resolve) => {
GNNetwork.healthCheck((response) => {
resolve(response);
});
});
}
static uploadFile(fileId, content, filename, mimetype, onResponse = null) {
GNNetwork.peer.uploadFile(fileId, content, filename, mimetype, onResponse);
}
static uploadFileAsync(fileId, content, filename, mimetype) {
return new Promise((resolve) => {
GNNetwork.uploadFile(fileId, content, filename, mimetype, (response) => {
resolve(response);
});
});
}
static getDownloadFileUrl(downloadToken) {
return GNNetwork.gnServerSettings.getHttpUrl() + "/" + NetworkingPeer.DOWNLOAD_FILE + "/" + downloadToken;
}
}
GNNetwork.AUTH_TOKEN_KEY = "[GearN]_AUTH_TOKEN_KEY";
GNNetwork.USER_ID_KEY = "[GearN]_USER_ID_KEY";
GNNetwork.GAME_ID_KEY = "[GearN]_GAME_ID_KEY";