一 生命周期回调

生命周期回调可以让开发人员在不同类型的server生命周期中进行详细操作。

提供的生命周期回调函数包含:beforeStartup,afterStartup,beforeShutdown,afterStartAll。

其详细的功能说明例如以下:

beforeStartup(app, cb)
before application start components callback
Arguments
app - application object
cb - callback function afterStartup(app, cb)
after application start components callback
Arguments
app - application object
cb - callback function beforeShutdown(app, cb)
before application stop components callback
Arguments
app - application object
cb - callback function afterStartAll(app)
after all applications started callback
Arguments
app - application object

详细用法:在game-server/app/servers/某一类型服务器/ 文件夹下加入lifecycle.js文件,详细文件内容例如以下:

module.exports.beforeStartup = function(app, cb) {
// do some operations before application start up
cb();
}; module.exports.afterStartup = function(app, cb) {
// do some operations after application start up
cb();
}; module.exports.beforeShutdown = function(app, cb) {
// do some operations before application shutdown down
cb();
}; module.exports.afterStartAll = function(app) {
// do some operations after all applications start up
};

二 组件

首先。在app/components/加入HelloWorld.js文件, 大致代码例如以下:

// components/HelloWorld.js
module.exports = function(app, opts) {
return new HelloWorld(app, opts);
}; var HelloWorld = function(app, opts) {
this.app = app;
this.interval = opts.interval | DEFAULT_INTERVAL;
}; HelloWorld.name = '__HelloWorld__'; HelloWorld.prototype.start = function(cb) {
console.log('Hello World Start');
cb();
} HelloWorld.prototype.afterStart = function (cb) {
console.log('Hello World afterStart');
cb();
} HelloWorld.prototype.stop = function(force, cb) {
console.log('Hello World stop');
cb();
}

这样一个组件就创建完毕了。然后在app中配置。在masterserver中载入:

var helloWorld = require('./app/components/HelloWorld');

app.configure('production|development', 'master', function() {
app.load(helloWorld, {interval: 5000});
});

三 演示样例

我这边是在arena服务中增加了lifecycle,同一时候加了一个组件,步骤例如以下。

1 启动过程

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHVmZW5nMDk5MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

2 关闭过程





pomelo生命周期回调和组件加入的更多相关文章

  1. Cocos Creator学习三:生命周期回调函数

    1.目的:学习生命周期回调函数以及回调顺序,更有利于我们逻辑的处理把控. 2.生命周期回调函数: 节点:指cc.Node:组件:指cc.Component. ①onLoad:脚本组件绑定的节点所在场景 ...

  2. 如何解决微信小程序界面适配问题-引用-生命周期回调函数-优化机制-样式引入

    如何解决微信小程序界面适配问题 .wxss page{ height: 100%; width:750rpx; } this.setData({ imageWidth: wx.getSystemInf ...

  3. 【技术博客】Flutter—使用网络请求的页面搭建流程、State生命周期、一些组件的应用

    Flutter-使用网络请求的页面搭建流程.State生命周期.一些组件的应用 使用网络请求的页面搭建流程 ​ 在开发APP时,我们常常会遇到如下场景:进入一个页面后,要先进行网络调用,然后使用调用返 ...

  4. Bean 注解(Annotation)配置(2)- Bean作用域与生命周期回调方法配置

    Spring 系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of ...

  5. Bean XML 配置(2)- Bean作用域与生命周期回调方法配置

    系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of Contro ...

  6. Cocos Creator 生命周期回调(官方文档摘录)

    Cocos Creator 为组件脚本提供了生命周期的回调函数.用户通过定义特定的函数回调在特定的时期编写相关 脚本.目前提供给用户的声明周期回调函数有: onLoad start update la ...

  7. Angular6 基础(数据绑定、生命周期、父子组件通讯、响应式编程)

    Angular相比于vue来说,更像一个完整的框架,本身就集成了很多模块,如路由,HTTP,服务等,而vue是需要另外引入比如(vuex,axios等).Angular引入了依赖注入.单元测试.类等后 ...

  8. 我的Android进阶之旅------>Android服务的生命周期回调方法

    先引用一段官网上的文字 ======================================================================================== ...

  9. 简单记录一下vue生命周期及 父组件和子组件生命周期钩子执行顺序

    首先,vue生命周期可以用下图来简单理解 当然这也是官方文档的图片,详细的vue周期详解请参考这里 然而当同时存在父子组件的时候生命周期钩子是如何执行的呢? 请看下文: 加载渲染过程父beforeCr ...

随机推荐

  1. [CODE FESTIVAL 2016]Problem on Tree

    题意:给一棵树,对于一个满足以下要求的序列$v_{1\cdots m}$,求最大的$m$ 对$\forall1\leq i\lt m$,路径$(v_i,v_{i+1})$不包含$v$中除了$v_i,v ...

  2. (转载)打破某些大牛比较呵呵的MySQL无file权限读root hash的谣言

    如题.比如乌云社区发帖的这位大牛http://zone.wooyun.org/content/12432 看那帖子标题就很喜感有木有,大概意思就是创建了一个没有file权限的账户test,然后不能lo ...

  3. Android Studio --> Gradle Build设置自动

    ps:http://www.cnblogs.com/kangyi/p/4448398.html 应用场景 通常情况下我们的apps发布后也就是release模式下log是不显示的,debug模式下是显 ...

  4. [BZOJ1005](HNOI 2008)明明的烦恼

    Description 自从明明学了树的结构,就对奇怪的树产生了兴趣...... 给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为 ...

  5. CentOS 7安装ifconfig

    yum install net-tools 安装这个工具,或者升级写法,使用ip addr show 参考: https://linux.cn/article-3631-1.html

  6. JVM -XX: 参数介绍

    功能开关: 参数 默认值或限制 说明 参数 默认值 功能 -XX:-AllowUserSignalHandlers 限于Linux和Solaris,默认不启用 允许为java进程安装信号处理器,信号处 ...

  7. 进程上下文VS中断上下文

    转载:http://www.cnblogs.com/zzx1045917067/archive/2012/12/19/2824552.html 内核空间和用户空间是现代操作系统的两种工作模式,内核模块 ...

  8. cocos2d-x 中文乱码问题解决方案

    在windows环境下使用visual studio 开发cocos2d-x,由于visual studio 默认编码为GBK 格式,而cocos2d-x引擎默认编码为UTF-8, 如果有用到中文,在 ...

  9. 使用wget提示无法建立SSL连接

    wget 下载URL 提示无法建立SSL连接 解决方法: 原命令上加上" --no-check-certificate" 这是因为wget在使用HTTPS协议时,默认会去验证网站的 ...

  10. uva 784 Maze Exploration(简单dfs)

    这道题看上去非常麻烦,什么迷宫啊.门之类的,事实上挺简单的,就是让把与 * 连通的都置为 # 包含 * , 直接dfs就能够了,只是我wa了好多次...最后居然是多读了一个换行.忘了加getchar( ...