Mosca源码阅读

先在前面

最近心血来潮看了看一个比较有名的开源MQTT broker —— Mosca。不读不知道,读完才恍然大悟 —— 这是啥破玩意(哈哈)。

由于我是nodejs的超级初学者,所以本文会比较浅显,并且只关注big picture,不陷入细节。

这里先规定几个缩写,让后面行文时少打一点字:

  • MQ - MessageQueue
  • Asco - Ascoltatori

Ascoltatori - 听者

Ascoltatori是一个意大利语单词,翻译成英文就是listener。

这里严重吐槽作者取名字的方式,mosca这种短小的外语单词我们是可以接受的,你说ascoltatori这么长的意大利语单词,你让我们怎么记。
差评,退款,邮费也要退!

Asco模块的作用是提供一个一致的MQ的抽象,供上层broker使用。

这里我们只分析基于Redis的实现,原因是Redis我相对比较熟悉,功能也比较简单。

接口分析

RedisAscoltatore有三个半接口:

  • subscribe
  • unsubscribe
  • publish

剩下的那半个是模块的构造函数。接下来我们分别分析接口的功能及其实现。

Subscribe接口

this._subRedisAscoltatore用来subscribe的连接。首先我们要向MQ订阅指定的topic …

more ...