自定义服务逻辑的 实时服务器 部分包含两部分内容:
!onInitGameData 方法是在 onCreateRoom 之后,收到 onRecvFromClient 广播时检查 gameData。
开通自定义实时服务器后,客户端发起的房间相关操作,均被 MGOBE 后台广播到自定义实时服务器。客户端、 MGOBE 后台、自定义实时服务器三者交互时序图如下:
开发者只需要提供一个 index.js 脚本,然后按照以下文件夹结构压缩成 zip 文件,在 MGOBE 控制台上传即可。
├── mgobexs
│ └── index.js
!zip 文件的根目录内只能有一个文件夹,建议命名为 mgobexs。mgobexs 目录下的 index.js 文件是实时服务器入口。
开发者在接入实时服务器时,需要在 index.js 中导出一个 mgobexsCode 对象,该对象拥有一个 gameServer 属性。Node.js 示例代码如下:
exports.mgobexsCode = {
gameServer
};
在 gameServer 中需要实现 onInitGameData、onRecvFromClient、onCreateRoom、onJoinRoom 等接口。NodeJS 示例代码如下:
const gameServer = {
// 消息模式
mode: 'sync',
// 初始化游戏数据
onInitGameData: function () {
return {};
},
// 监听客户端数据
onRecvFromClient: function onClientData(args) {
args.SDK.logger.debug("onRecvFromClient");
args.SDK.exitAction();
},
// 监听加房广播
onJoinRoom: function (args) {
args.SDK.logger.debug("onJoinRoom");
},
// 监听创建房间广播
onCreateRoom: function (args) {
args.SDK.logger.debug("onCreateRoom");
},
// 监听退房广播
onLeaveRoom: function (args) {
args.SDK.logger.debug("onLeaveRoom");
},
// 监听玩家被移除广播
onRemovePlayer: function (args) {
args.SDK.logger.debug("onRemovePlayer");
},
// 监听房间销毁广播
onDestroyRoom: function (args) {
args.SDK.logger.debug("onDestroyRoom");
},
// 监听修改房间属性广播
onChangeRoom: function (args) {
args.SDK.logger.debug("onChangeRoom");
},
// 监听修改玩家自定义状态广播
onChangeCustomPlayerStatus: function (args) {
args.SDK.logger.debug("onChangeCustomPlayerStatus");
},
// 监听玩家网络状态变化广播
onChangePlayerNetworkState: function (args) {
args.SDK.logger.debug("onChangePlayerNetworkState");
},
// 监听开始帧同步广播
onStartFrameSync: function (args) {
args.SDK.logger.debug("onStartFrameSync");
},
// 监听停止帧同步广播
onStopFrameSync: function (args) {
args.SDK.logger.debug("onStopFrameSync");
}
};
开发者使用 SDK.logger 输出的日志,您可前往控制台选择【实时服务器】,单击【查看日志】链接进行查看。
为方便开发者创建自定义服务逻辑,在下载 示例代码之前,请查阅 更新历史。
平台 | 更新时间 | 版本 | 示例代码 | 文档 |
---|---|---|---|---|
Nodejs | 2019/6/21 | V1.0.1 | 下载 | 操作指南 开发指南 |
← 消息发送 mgobexsCode →