文章目录
  1. 1. chatofpomelo 的开启流程
  2. 2. 组件的挂载
  3. 3. 补充
    1. 3.1. 附官方组件 Wiki

由于才接触 Node.js 几天,看源码时各种细节和设计方法都得熟悉下。结合 chatofpomelo-websocket,先从 Pomelo 的使用入口开始看。

chatofpomelo 的开启流程

Pomelo.createApp 出来 Application,然后 Application.start 就开启了。

createApp 时会调 Application.init 来做初始化。

init 里调 AppUtil.defaultConfiguration 来读入默认配置。例如从 master.json 里读入 master 配置(Application.master),从 servers.json 里读入服务器集群各进程的 type、host 和 port 配置(可以通过 Application.get("__serverMap__") 获取)。

组件的挂载

组件放在 components 目录下。各组件可以通过 Pomelo.components 或者直接通过 Pomelo 来按名取。也可以通过 Application.components 来按名取(每个组件的名字在自己的 name 属性里,通常为 JS 文件名加前后双下划线,例如 connector.js 的组件名为 __connector__)。

下面看下组件的挂载和运行。

Pomelo 里会遍历 componets 目录里的各个 JS 文件,然后 require 到 Pomelo 里和 Pomelo.components 里。

Application.start 里先调用 AppUtil.loadDefaultComponentsloadDefaultComponents 里会根据 Application.serverTypeApplication.load 需要的 components。

Application.load 里会将 Pomelo 里的 components 放到自己的 components 里。

Application.start/stop/afterStart 等方法会统一执行各 components 里的对应 start/stop/afterStart等方法。

补充

这篇发表后,在 Google 里搜了下(我的一点恶趣味:经常发表随笔后会看看搜索引擎收录了没)Pomelo 源码分析 组件,发现了 Pomelo 官方 Wiki 里关于组件的说明,奇怪之前准备看组件时没搜到。分析源码之前也浏览了下官方 Wiki,应该是偏向于了解大概了,各细节没了太大印象。

不过官方已经有了也没关系,随笔给人参考的价值变小后,就当自己的笔记吧。

另外网上也有些 Pomelo 的源码分析了,但是看了眼,跟我想要的不太一样。

附官方组件 Wiki

文章目录
  1. 1. chatofpomelo 的开启流程
  2. 2. 组件的挂载
  3. 3. 补充
    1. 3.1. 附官方组件 Wiki