[egret+pomelo]实时对战游戏杂记(5)
之前大体了解了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)的更多相关文章
- [egret+pomelo]实时游戏杂记(3)
[egret+pomelo]学习笔记(1) [egret+pomelo]学习笔记(2) [egret+pomelo]学习笔记(3) 服务端的请求流程走完了一遍,下面就该看一下,在目前的服务端中,各服务 ...
- [egret+pomelo]实时游戏杂记(2)
[egret+pomelo]学习笔记(1) [egret+pomelo]学习笔记(2) [egret+pomelo]学习笔记(3) pomelo pomelo服务端介绍(game-server/con ...
- [egret+pomelo]实时游戏杂记(1)
[egret+pomelo]学习笔记(1) [egret+pomelo]学习笔记(2) [egret+pomelo]学习笔记(3) 资料 egret pomelo pomelo捡宝项目 准备工作 1. ...
- [egret+pomelo]实时游戏杂记(4)
了解了前后端的通信,下面就可以开始自己的业务逻辑了,首先玩家输入名称,选择角色后进入游戏世界. 服务端的demo中已经提供了一些简单的角色信息和属性,数据地址位于 game-server/config ...
- ADO.Net(五)——实战:对战游戏
对战游戏 要求: 自建数据表(例如:数据表包含:代号,姓名,性别,血量,攻击力,防御力,命中,闪避,等级等字段) 需要通过程序向数据表添加人员 添加的时候,根据用户输入的名字,自动计算生成相应的血量. ...
- C#小游戏(文字对战游戏)
第一代,不是很完善,会在后续增加更多的功能 主: using System; using System.Collections.Generic; using System.Linq; using Sy ...
- 【经典】C++&RPG对战游戏
博文背景: 还记大二上学期的时候看的这个C++&RPG游戏(博主大一下学期自学的php,涵盖oop内容),一个外校的同学他们大一学的C++,大二初期C++实训要求做一个程序填空,就是这个 RP ...
- c#部分---网吧充值系统;简易的闹钟;出租车计费;简单计算器;对战游戏;等额本金法计算贷款还款利息等;随机生成10个不重复的50以内的整数;推箱子;
网吧充值系统namespace ConsoleApplication1 { class Program { struct huiyuan { public string name; public st ...
- ADO.NET 扩展属性、配置文件 和 对战游戏
扩展属性 有外键关系时将信息处理成用户可看懂的 利用扩展属性 如:Info表中的民族列显示的是民族代号处理成Nation表中的民族名称 需要在Info类里面扩展一个显示nation名称的属性 例:先前 ...
随机推荐
- hibernate向mysql插入数据后,得到该条数据主键的方法
hibernate向MySQL插入一条数据后,得到该条数据主键的方法.主键是自增长的. 保存完成后,直接用该实体的getId的方法就可以得到.因为保存完成后,hibernate会自动将id赋值给实体. ...
- js CacheQueue
(function(){ var CacheQueue=function(name,weightValue,maxLength,clearTimerTime){ //public this.name ...
- 【数据售卖平台】—— Vue2.0入门学习项目爬坑
前言:这个项目是我从零学习Vue2.0时用于练习基础知识的入门项目,包含了Vue2.0几乎所有项目都会用到的基础功能,是新手用来练手的好项目,这里温故知新对功能点做一个总结.github地址:http ...
- pymongo的基本使用
#!/usr/bin/env python # -*- coding:utf-8 -*- """ MongoDB存储 在这里我们来看一下Python3下MongoDB的存 ...
- Win7如何自定义鼠标右键菜单 添加在此处打开CMD窗口
将下面文件保存为"右键添加在此处打开CMD窗口.reg"双击导入运行即可 Windows Registry Editor Version 5.00 [HKEY_CLASSES_RO ...
- merge-sorted-array——合并两个有序数组
Given two sorted integer arrays A and B, merge B into A as one sorted array. Note: You may assume th ...
- UNP学习笔记(第八章 基本UDP套接字编程)
UDP应用程序客户不与服务器建立连接,而是只管使用sendto函数给服务器发送数据报,其中必须指定目的地的地址作为参数. 下图给出典型的UDP客户/服务器程序的函数调用. recvfrom和sendt ...
- 翻翻git之---一个丰富的通知工具类 NotifyUtil
转载请注明出处王亟亟的大牛之路 P1(废话板块.今天还加了个小广告) 昨天出去浪,到家把麦麦当当放出来玩一会就整到了12点多..早上睡过头了. .简直心酸. ... 近期手头上有一些职位能够操作,然后 ...
- 【Python数据分析】IPython快捷键
命令 说明 CTRL+P(或向上箭头) 后向搜索命令历史中以当前输入的文本开头的命令 CTRL+N(或向下箭头) ...
- CSS环绕球体的旋转文字-3D效果
代码地址如下:http://www.demodashi.com/demo/12482.html 项目文件结构截图 只需要一个html文件既可: 项目截图: 代码实现原理: 该示例的实现过程很简单,主要 ...