文档中心 小游戏联机对战引擎 开发指南 在实时服务器使用云开发

在实时服务器使用云开发

最近更新时间:2019-09-27 15:38:09

实时服务器集成 腾讯云云开发 SDK,开发者可以在实时服务器上直接调用 腾讯云云开发 微信云开发 中的云函数、云数据库、云存储等服务。

腾讯云云开发

下面以云函数为例介绍如何在实时服务器中使用云开发,云开发中其它服务调用过程类似。

创建云函数

  1. 登录 腾讯云云开发控制台,选择菜单栏【环境】。
  2. 进入环境页面,单击【新建环境】。
  3. 进入新建环境页面,填写环境名称、环境 ID 和选择环境版本后,单击【确定】。
  4. 创建云开发环境后,并进入该环境概览页面,即可得到该环境 ID。
  5. 在左侧菜单中单击【云函数】,创建一个名为“mgobe_test”的 Hello World 云函数。

    云函数示例代码如下:
    'use strict';
    exports.main = (event, context, callback) => {
     console.log("Hello World")
     console.log(event)
     console.log(event["non-exist"])
     console.log(context)
     callback(null, event);
    };

获取密钥对

  1. 登录腾讯云 访问管理控制台,选择左侧菜单【访问密钥】>【API 密钥管理】。
  2. 进入 API 密钥管理页面,单击【新建密钥】。
  3. 密钥创建完成后,获得 SecretId 和 SecretKey。

调用云函数

  1. 在实时服务器入口文件 index.ts 中实现 onInitGameServer 方法,填写环境 ID、SecretId、SecretKey。
  2. 下面的示例代码实现了初始化云开发 TCB 对象,每次收到客户端消息后就调用云函数,并将结果返回。
  3. 游戏 ID、后端密钥可以开通实时服务器后,在 MGOBE 控制台获取。
import { mgobexsInterface } from './mgobexsInterface';

const gameServer: mgobexsInterface.GameServer.IGameServer = {
    mode: 'sync',
    onInitGameData: function (): mgobexsInterface.GameData {
        return {};
    },
    onRecvFromClient: function onRecvFromClient({ actionData, gameData, SDK, room, exports }) {
        // 收到客户端消息就调用云函数
        tcbApp.callFunction({
            name: "mgobe_test",
            data: { a: 1 },
        }).then((res: any) => {
            // 返回成功结果
            SDK.logger.debug({ res });
            SDK.sendData({ playerIdList: [], data: { res } });
            SDK.exitAction();
        }).catch((err: any) => {
            // 返回失败结果
            SDK.logger.debug({ err });
            SDK.sendData({ playerIdList: [], data: { err } });
            SDK.exitAction();
        });
    }
};

let tcbApp: any;

// 服务器初始化时调用
function onInitGameServer(tcb: any) {
    // 初始化 TCB
    tcbApp = tcb.init({
        secretId: "请填写腾讯云API密钥SecretId",
        secretKey: "请填写腾讯云API密钥SecretKey",
        env: "请填写云开发环境",
        serviceUrl: 'http://tcb-admin.tencentyun.com/admin',
        timeout: 5000,
    });
}

export const mgobexsCode: mgobexsInterface.mgobexsCode = {
    logLevel: 'debug+',
    logLevelSDK: 'debug+',
    gameInfo: {
        gameId: "请填写游戏ID",
        serverKey: "请填写后端密钥",
    },
    onInitGameServer,
    gameServer
}
  1. 将 index.ts 进行编译为 js,并且打包发布后,使用客户端 sendToGameSvr 接口发送消息,即可得到实时服务器返回的 TCB 云函数调用结果。

微信云开发

下面以云函数为例介绍如何在实时服务器中使用微信云开发,其它服务调用过程类似。

创建云函数

  1. 在微信开发者工具中开通云开发后,进入云开发控制台,获取环境 ID。
  2. 单击【云函数】,创建一个名为“mgobe_test”的 Hello World 云函数。在微信编辑器中拉取云函数,可以进行编辑、上传。

    云函数示例代码如下:
    'use strict';
    exports.main = (event, context, callback) => {
     console.log("Hello World")
     console.log(event)
     console.log(event["non-exist"])
     console.log(context)
     callback(null, event);
    };

获取密钥对

  1. 使用微信小游戏的管理员账号登录 微信公众平台,并授权当前小游戏账号进行登录。
  2. 授权成功后,登录 腾讯云访问管理控制台,选择左侧菜单【访问密钥】>【API 密钥管理】。
  3. 进入 API 密钥管理页面,单击【新建密钥】。
  4. 密钥创建完成后,获得 SecretId 和 SecretKey。

调用云函数

该步骤与上文腾讯云云开发在实时服务器 调用云函数 一致,在实时服务器中初始化 TCB 对象后,即可调用云开发中的各种服务。API 相关您可以参考 腾讯云云开发 SDK 文档