文档章节

Pomelo游戏服务器端开发系列(6)--Component

nextzeus
 nextzeus
发布于 2017/05/31 17:16
字数 258
阅读 57
收藏 0

组件

add a component to pomelo

// components/HelloWorld.js
module.exports = function(app, opts) {
  return new HelloWorld(app, opts);
};

var DEFAULT_INTERVAL = 3000;

var HelloWorld = function(app, opts) {
  this.app = app;
  this.interval = opts.interval || DEFAULT_INTERVAL;
  this.timerId = null;
};

HelloWorld.name = '__HelloWorld__';

HelloWorld.prototype.start = function(cb) {
  console.log('Hello World Start');
  var self = this;
  this.timerId = setInterval(function() {
    console.log(self.app.getServerId() + ": Hello World!");
    }, this.interval);
  process.nextTick(cb);
}

HelloWorld.prototype.afterStart = function (cb) {
  console.log('Hello World afterStart');
  process.nextTick(cb);
}

HelloWorld.prototype.stop = function(force, cb) {
  console.log('Hello World stop');
  clearInterval(this.timerId);
  process.nextTick(cb);
}

每个component都定义start,afterStart, stop这些hook函数,供pomelo管理其生命周期时进行调用

app.js加载组件

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

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

说明

定义的组件一般往外导出的是一个工厂函数,而不是一个对象。当app加载component时,如果是一个工厂函数,那么app会将自己作为上下文信息以及后面的 opts作为参数传递给这个函数,使用这个函数的返回值作为component对象。 pomelo会先按照顺序执行完所有component的start后,才会按照顺序执行所有component的afterStart.

© 著作权归作者所有

共有 人打赏支持
nextzeus
粉丝 10
博文 12
码字总数 4740
作品 0
朝阳
程序员
网易游戏服务器开发框架--Pomelo

pomelo 是由网易开发的基于node.js开发的高性能、分布式游戏服务器框架, 也可作为高实时web应用框架。 Pomelo的应用范围 pomelo最适合的应用领域是网页游戏、社交游戏、移动游戏的服务端,开...

谢骋超
2012/10/23
84.2K
10
网易正式发布 Pomelo 开源游戏服务端框架

10月20日的开源中国 杭州源创会 上,来自网易的 @谢骋超为大家介绍了网易即将开源的基于 Node.js 的游戏服务器框架 Pomelo (柚子),并称该框架将于11月正式开源。 今天这个框架终于正式跟我们...

oschina
2012/11/21
27.2K
97
网易开源游戏服务器框架 pomelo 0.9 版发布

pomelo 0.9版于2月26日发布,以下是该版本的新特性。 pomelo websocket支持自动重连 在pomelo 0.9版本中,pomelo-jsclient-websocket 支持自动重连。重连发生在连接断开后的5s后,在重连失败...

谢骋超
2014/02/27
7.8K
5
历数2013年优秀的开源游戏引擎与开源游戏项目

2013年是移动游戏爆发的一年,也是开源游戏爆发的一年!在这里,我们历数一下2013年都有哪些优秀的开源游戏诞生,还有哪些优秀的开源游戏技术解决方案诞生! 开源跨平台2D客户端引擎 Cocos2...

大鸡蛋
2014/01/15
18.6K
11
当前的几种开源游戏服务端介绍

当前的几种开源游戏服务端介绍 pomelo Pomelo 是基于 Node.js 的高性能、分布式游戏服务器框架。它包括基础的开发框架和相关的扩展组件(库和工具包),可以帮助你省去游戏开发枯燥中的重复劳...

bot911
2015/02/02
2.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
49分钟前
4
1
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
59分钟前
1
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
1
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
1
0
麒麟AI首席科学家现世

8月31日,华为发布了新一代顶级人工智能手机芯片麒麟980,成为全球首款7nm工艺手机芯片,AI方面也实现飞跃,支持人脸识别、物体识别、物体检测、图像分割、智能翻译等。 虽然如今人人都在热议...

问题终结者
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部