1 Star 1 Fork 2

folgerhu / matchvs2mgobe

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
在实时服务器使用云开发.md 3.38 KB
一键复制 编辑 原始数据 按行查看 历史
zhifeng.hu 提交于 2020-06-28 14:18 . init

实时服务器集成游戏联机对战引擎云开发,开发者可以在实时服务器上直接调用 游戏联机对战引擎云开发 中的云函数、云数据库、云存储等服务。

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

创建云函数

  1. 登录 游戏联机对战引擎控制台
  2. 进入创建游戏页面,填写游戏基本信息,进入服务开通页,选择创建环境,单击【确定】。
  3. 创建云开发环境后,并进入该环境概览页面,即可得到该环境 ID。
  4. 在左侧菜单中单击【云函数】,创建一个名为“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 云函数调用结果。
JavaScript
1
https://gitee.com/folgerhu/matchvs2mgobe.git
git@gitee.com:folgerhu/matchvs2mgobe.git
folgerhu
matchvs2mgobe
matchvs2mgobe
master

搜索帮助