pomelo0.5.5源码分析(1)-组件

pomelo0.5.5源码分析(1)-组件

 

    由于才接触nodejs几天,看源码时各种细节和设计方法都得熟悉下。结合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.loadDefaultComponents,loadDefaultComponents里会根据Application.serverType来Application.load需要的components。

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

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

 

三、ps

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

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

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

 

附官方组件wiki:

  1. Pomelo-Framework里的组件部分:https://github.com/NetEase/pomelo/wiki/Pomelo-Framework

  2. Pomelo-组件:https://github.com/NetEase/pomelo/wiki/Pomelo-%E7%BB%84%E4%BB%B6

 

你可能感兴趣的:(pomelo0.5.5源码分析(1)-组件)