腾讯云云游戏Demo 后端与云 API 对接示例(Node.js)_音视频解决方案_同尘科技

云游戏 2年前 (2023-08-17) 浏览 102

步骤1:环境部署

cloudapi.js 是 Node.js 版的云 API 调用实例,自行安装 Node.js 运行环境。将 cloudapi.js 中的 SecretId 和 SecretKey,替换成您的腾讯云账号下的 云 API 密钥 信息。cloudapi.js 示例代码如下:

var express = require('express');var router = express.Router();// import client modelsvar tencentcloud = require('tencentcloud-sdk-nodejs');const GsClient = tencentcloud.gs.v20191118.Client;
// tencent cloud api secret id and key, could be found here: https://console.cloud.tencent.com/cam/capivar secretId = 'your secretId';var secretKey = 'your secretKey';
// tencent cloud api client profileconst client = new GsClient({ credential: { secretId, secretKey, }, region: "ap-shanghai",// cloud api region, for example: ap-shanghai, ap-guangzhou, ap-chengdu, ap-beijing profile: { signMethod: "TC3-HMAC-SHA256",// signature algorithm httpProfile: { reqMethod: "POST", reqTimeout: 30, }, },});
var paramsVerify = (req, res, next) => { try { if (!req.body || typeof ("") == typeof (req.body)) { throw 'request body is null or did not parse as json'; }
["Appid", "Action", "Version", "Region"].forEach((item, _) => { if (item in req.body) { throw `${item} is not required`; } }); } catch (err) { res.json({ code: -1, data: err }); return; } next();};
// support forward proxyvar getClientIp = (req) => { var ips = req.headers['x-forwarded-for'] || req.headers['x-real-ip'] || req.connection.remoteAddress || req.socket.remoteAddress || req.connection.socket.remoteAddress; return ips ? ips.split(',')[0].trim() : "";};
// API for get client WAN iprouter.get('/get_wan_ip', (req, res, next) => { var clientIp = getClientIp(req).replace(/::ffff:/, '');// ipv4-over-ipv6 to ipv4 var data = JSON.stringify({ cip: clientIp }); var body = `var returnCitySN = ${data};`; res.end(body);});
// try to lock an instancerouter.post('/TrylockWorker', paramsVerify, (req, res, next) => { var clientInfo = req.body;
client.TrylockWorker(clientInfo).then((response) => { // normally console.log(response); res.json({ code: 0, data: response }); }, (err) => { // error console.log(err); res.json({ code: -1, data: err }); });});
// connect to locked instancerouter.post('/CreateSession', paramsVerify, (req, res, next) => { var clientInfo = req.body;
client.CreateSession(clientInfo).then((response) => { // normally console.log(response); res.json({ code: 0, data: response }); }, (err) => { // error console.log(err); res.json({ code: -1, data: err }); });});
// release instancerouter.post('/StopGame', paramsVerify, (req, res, next) => { var clientInfo = req.body;
client.StopGame(clientInfo).then((response) => { // normally console.log(response); res.json({ code: 0, data: response }); }, (err) => { // error console.log(err); res.json({ code: -1, data: err }); });});

module.exports = router;

步骤2:创建 express 项目

使用 express-generator 初始化一个 express 项目。

express myprojnpm i

步骤3:安装依赖库

npm install --save express tencentcloud tencentcloud-sdk-nodejs

步骤4:调用云 API

参考示例代码编写 cloudapi.js,修改 app.js,在后面加入一行。

app.use('/cloudapi', require('./cloudapi.js'));

步骤5:运行服务

npm run

步骤6:启动云游戏

网页端发送 try_lock 请求,锁定机器成功后,再调用 get_signature,返回值获得 ServerSession 字段,然后调用 TCGSDK.start(ServerSession) 接口启动云游戏。

对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?