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._sub
是RedisAscoltatore
用来subscribe的连接。首先我们要向MQ订阅指定的topic …