@oneb-sdk/client
Description
OneB SDK for JavaScript, OneBServices Client for JS Game engines such as Cocos Creator, Three.js, Pixi.js, Phaser...
OneB Services is a Game backend as a service (GBaaS)
Our APIs are encrypted into binary, boosting your game's performance beyond expectations while also increasing its overall security.
With OneB, you have the freedom to host on your system, providing you with complete control over your game data and user data, with no need to share it with anyone else. This added level of security and privacy ensures that your game's data is protected and kept confidential at all times.
With OneB, you can write and debug code directly on the cloud, enabling you to effortlessly modify game features without the need to rebuild game client versions. This feature not only saves you time but also provides a more streamlined development process, allowing you to focus on creating the best possible gaming experience for your players.
Installing
To install this package, simply type add or install @oneb-sdk/client using your favorite package manager:
npm install @oneb-sdk/client
yarn add @oneb-sdk/client
pnpm add @oneb-sdk/client
Getting Started
Import
The OneB SDK is modulized by clients and commands.
To send a request, you only need to import the OneBServicesClient
and
the commands you need, for example, CallGameScriptCommand
:
// ES5 example
const { OneBServicesClient, CallGameScriptCommand } = require("@oneb-sdk/client");
// ES6+ example
import { OneBServicesClient, CallGameScriptCommand } from "@oneb-sdk/client";
Usage
To send a request, you:
- Initiate client with configuration (e.g. gameId, environment, api type).
- Initiate command with input parameters.
- Call
send
operation on the client with command object as input
// a client can be shared by different commands.
const client = new OneBServicesClient({ gameId: "DEMO" });
const command = new GetBlueprintDataCommand(dataName);
client.send(command);
Async/await
We recommend using await operator to wait for the promise returned by send operation as follows:
// async/await.
try {
const data = await client.send(command);
// process data.
} catch (error) {
// error handling.
} finally {
// finally.
}
Async-await is clear, concise, intuitive, easy to debug and has better error handling as compared to using Promise chains or callbacks.
Promises
You can also use Promise chaining to execute send operation.
client.send(command).then(
(data) => {
// process data.
},
(error) => {
// error handling.
}
);
Promises can also be called using .catch()
and .finally()
as follows:
client
.send(command)
.then((data) => {
// process data.
})
.catch((error) => {
// error handling.
})
.finally(() => {
// finally.
});
working with protobuf
The client can also support the use protobuf to send/receive binary messages by setting apiType in the config, To send a binary request, you:
- Initiate client with apiType is BINARY
- Download protobuf message from our services and build it to the proto class
- Call
send
operation on the client with proto class
const client = new OneBServicesClient({apiType: APIType.BINARY });
const command = new GetBlueprintDataCommand<ITRequest>(dataName, TRequest);
Troubleshooting
When the service returns an exception, the error will include the exception information,
try {
const data = await client.send(command);
// process data.
} catch (error) {
console.log(error);
}
License
This SDK is distributed under the Apache License, Version 2.0, see LICENSE for more information.
Docs
For more information on how to use the OneB-SDK packages, please refer to the respective documentation.
- Docs - Getting Started
- Concepts - Basic concepts
- Game Features - understand features in games