之前大体了解了pomelo服务端的运行的大体运行流程,下面详细的学习一下在服务端比较重要的一个容器模块bearcat,在bearcat的wiki中我们可以对其有个大概的了解,在服务端示例的代码中也大量的出现了对bearcat模块的使用。

如playerHandler.js中:

module.exports = function (app) {
//设置bearcat bean
return bearcat.getBean({
id: "playerHandler",//唯一Id
func: PlayerHandler,//所对应的对象
//参数 相当于调用 var PlayerHandler= function(app){}
args: [{
name: "app",
value: app
}],
//依赖注入
props: [{
//对象名称
name: "areaService",
//引用文件
ref: "areaService"
}, {
name: "dataApiUtil",
ref: "dataApiUtil"
}, {
name: "consts",
ref: "consts"
}]
});
};

总结起来,bearcat有很多功能,在使用上最方便的就是其作为容器,可以在预加载的时候,将代码中的所有模块进行封装,让我们可以根据模块的id,轻松的对模块功能进行调用,不用再去想模块文件的位置来做“require(xxx)”或实例化操作

其中getBean({xxx});方法的参数中,也有些配置需要我们注意的地方。

比如:

1.对象的单例、实例化模式

scope : scope 可以是 singleton 或者是 prototype, 默认情况下是 singleton

2.抽象

abstract : 用于定义一个bean是抽象的, 即不会实例化, 默认情况下是 false

3.继承

parent : 用于定义bean之间的继承关系, 类似于对象之间的继承关系, 子类会继承父类 prototype 里面所没有的method, 值为parent bean id

4.初始化及销毁

init : 在构造函数被调用之后执行的init方法, init 方法可以是async异步的
destroy : 析构函数, 当容器优雅的关闭的时候, destroy 方法会被调用, 来做一些销毁工作

[egret+pomelo]实时对战游戏杂记(5)的更多相关文章

  1. [egret+pomelo]实时游戏杂记(3)

    [egret+pomelo]学习笔记(1) [egret+pomelo]学习笔记(2) [egret+pomelo]学习笔记(3) 服务端的请求流程走完了一遍,下面就该看一下,在目前的服务端中,各服务 ...

  2. [egret+pomelo]实时游戏杂记(2)

    [egret+pomelo]学习笔记(1) [egret+pomelo]学习笔记(2) [egret+pomelo]学习笔记(3) pomelo pomelo服务端介绍(game-server/con ...

  3. [egret+pomelo]实时游戏杂记(1)

    [egret+pomelo]学习笔记(1) [egret+pomelo]学习笔记(2) [egret+pomelo]学习笔记(3) 资料 egret pomelo pomelo捡宝项目 准备工作 1. ...

  4. [egret+pomelo]实时游戏杂记(4)

    了解了前后端的通信,下面就可以开始自己的业务逻辑了,首先玩家输入名称,选择角色后进入游戏世界. 服务端的demo中已经提供了一些简单的角色信息和属性,数据地址位于 game-server/config ...

  5. ADO.Net(五)——实战:对战游戏

    对战游戏 要求: 自建数据表(例如:数据表包含:代号,姓名,性别,血量,攻击力,防御力,命中,闪避,等级等字段) 需要通过程序向数据表添加人员 添加的时候,根据用户输入的名字,自动计算生成相应的血量. ...

  6. C#小游戏(文字对战游戏)

    第一代,不是很完善,会在后续增加更多的功能 主: using System; using System.Collections.Generic; using System.Linq; using Sy ...

  7. 【经典】C++&RPG对战游戏

    博文背景: 还记大二上学期的时候看的这个C++&RPG游戏(博主大一下学期自学的php,涵盖oop内容),一个外校的同学他们大一学的C++,大二初期C++实训要求做一个程序填空,就是这个 RP ...

  8. c#部分---网吧充值系统;简易的闹钟;出租车计费;简单计算器;对战游戏;等额本金法计算贷款还款利息等;随机生成10个不重复的50以内的整数;推箱子;

    网吧充值系统namespace ConsoleApplication1 { class Program { struct huiyuan { public string name; public st ...

  9. ADO.NET 扩展属性、配置文件 和 对战游戏

    扩展属性 有外键关系时将信息处理成用户可看懂的 利用扩展属性 如:Info表中的民族列显示的是民族代号处理成Nation表中的民族名称 需要在Info类里面扩展一个显示nation名称的属性 例:先前 ...

随机推荐

  1. Android蓝牙开发教程(三)——蓝牙设备相互通讯

    在上一篇中已经介绍如何连接我们搜索到的蓝牙设备,如果你还没阅读过,建议先看看上一篇文章Android蓝牙开发教程(二)——连接蓝牙设备 在上一篇文章中,无论是自动连接还是被动连接,连接成功后,都是将获 ...

  2. jsp页面中,动态调用系统时间的实现

    在做WEB项目时,经常会须要 在页面中显示当前时间,以下介绍一个简单的调用系统时间的方法,效果如图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvczI5 ...

  3. $ is not defined

    $ is not defined 引入Jquery的顺序不正确,要把它放在第一个引入

  4. 1、C++的的升级

    1.C语言的缺点 (1)重用性差 (2)维护性差 2.C++ 从面向世界的需求出发来设计我们的程序, 3. 使用增强 A. ; i < ; i++) { } C语言编译器的话,会报错,因为C语言 ...

  5. 命令行编译sass

    一.安装ruby1.需要的软件设备: 2.安装过程:点击上图“应用程序”安装即可,注意安装过程中其中三项都需要打上勾.如若没有三项都打上勾则需要修改环境变量中的path路径后添加一个分号. 3.打开c ...

  6. nightwatch 切换窗口

    .switchWindow() Change focus to another window. The window to change focus to may be specified by it ...

  7. Codeforces Hello2015第一题Cursed Query

    英文题面: De Prezer loves movies and series. He has watched the Troy for like 100 times and also he is a ...

  8. 19:ReverseNumber数字颠倒

    题目描述 描述:输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001 输入描述:输入一个int整数 输出描述:将这个整 ...

  9. Spring学习十----------Bean的配置之Autowired注解实现

    © 版权声明:本文为博主原创文章,转载请注明出处 @Required -@Required注解适用于bean属性的setter方法 -这个注解仅仅表示,受影响的bean属性必须在配置时被填充,通过在b ...

  10. HTML元素定位

    一切皆为框 div.h1 或 p 元素常常被称为块级元素(block element).这意味着这些元素显示为一块内容,即"块框".与之相反,span 和 strong 等元素称为 ...