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
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());
}
}