状态同步

最近更新时间:2019-09-05 18:45:55

本文档用于指导开发者使用小游戏联机对战引擎 MGOBE 自定义服务逻辑和客户端 API,实现状态同步。

前提条件

已通过任意方式 创建并加入房间

操作步骤

开发示例:状态同步。

1. 上传服务端逻辑

开发者需要提供一个 index.js 脚本,在 MGOBE 控制台上传服务端逻辑。上传操作请参见 自定义服务逻辑

index.js 中需要导出一个 mgobexsCode 对象,该对象拥有一个 gameServer 属性。示例代码如下:

exports.mgobexsCode = {
    gameServer
};

const gameServer = {
    // 消息模式
    mode: 'sync',
    // 初始化游戏数据
    onInitGameData: function () {
        return {};
    },
    // 监听客户端数据
    onRecvFromClient: function onClientData(args) {
        args.SDK.logger.debug("onRecvFromClient");
        args.SDK.exitAction();
    }
};

2. 调用客户端 API

(1)定义实时服务器参数

const sendToGameServerPara = {
    data: {
        cmd: 1,
    },
};

(2)发送到实时服务器
发送到实时服务器 API 请参见 sendToGameSvr

room.sendToGameSvr(sendToGameServerPara, event => console.log(event));

(3)自定义服务消息广播回调
自定义服务消息广播回调 API 请参见 onRecvFromGameSvr

room.onRecvFromGameSvr = event => console.log("新自定义服务消息", event);