MQTT服务的设备、订阅主题管理,是依赖Swoole-Table
和Redis
实现的。
其中Swoole-Table
用于管理设备的在线状态,与对应Swoolefd
标示的更新。
而Redis
则主要用于管理订阅主题的队列信息。
Redis的各项key如下:
类型:SETS 键前缀:mqtt_sets ,用途:存储所有主题列表
类型:SETS 键前缀:mqtt_sets_.订阅主题名称 ,用途:存储某个主题下对应的设备号
类型:STRING 键前缀:mqtt_incr_订阅主题名称,用途:记录某个主题下对应的设备号数量
类型:HASH 键前缀:mqtt_hash_订阅主题名称,用途:记录某个设备号下,订阅主题与QOS的关系
如果开发者想自己搭建Web界面管理设备信息,也可以在MQTT服务的消息事件中自行实现连接存储,并不会影响框架的运行逻辑。