跳到主要内容

SDK、TypeScript

介绍

TypeScript SDK 适用于使用 TypeScript 语言的项目,如 CocosCreator、Laya、Vue、React。

TypeScript SDK 提供了与 ioGame 游戏服务器交互的简单封装,内部使用 Protobuf 数据协议通信。 配合上代码生成能避免编写大量的模板代码, 从而帮助客户端开发者减少巨大的工作量。

安装

see https://www.npmjs.com/package/iohao-sdk

npm i iohao-sdk

package.json

安装后的 package.json

An

SDK 设置

export class YourNetConfig {
static startNet() {
// --------- IoGameSetting ---------
ioGameSetting.enableDevMode = true;
// China or Us
ioGameSetting.language = ioGameLanguage.CHINA;
// message callback. cn: 回调监听
ioGameSetting.listenMessageCallback = new YourListenMessageCallback();

// socket
ioGameSetting.url = "ws://127.0.0.1:10100/websocket";
ioGameSetting.netChannel = new YourNetChannel();

ioGameSetting.startNet()
}
}

如何生成 .proto

see https://github.com/bufbuild/protobuf-es/blob/main/MANUAL.md#how-to-generate-code

或阅读相关示例文档 .proto 生成小节。

处理错误码

以下分别展示了 callback、async await 两种编码风格对于错误的处理。

SdkAction 由 ioGame 生成。

export async function onTestError() {
console.log("------- onTestError -------");

const value = ...;

// code style: callback.
SdkAction.ofTestError(value, result => {
result.log(result.getInt());
}).onError(result => {
result.log(result.getErrorInfo());
});

// code style: async await.
const result = await SdkAction.ofAwaitTestError(value);
if (result.success()) {
result.log(result.getInt());
} else {
result.log(result.getErrorInfo());
}
}