From eb4bdd7b2d416739ac9c9e2af35ddd63ac92c75c Mon Sep 17 00:00:00 2001 From: Gavin Dmello Date: Sat, 17 Sep 2016 17:04:16 +0530 Subject: [PATCH] Added get clientList for level --- README.md | 2 +- persistence.js | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d1827ae..d9a6e9b 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Example: ```js var level = require('level') -var aedesPersistencelevel = require('aedes-perisistence-level') +var aedesPersistencelevel = require('aedes-persistence-level') // instantiate a persistence instance aedesPersistencelevel(level('./mydb')) diff --git a/persistence.js b/persistence.js index 6f9cc74..dc57c4d 100644 --- a/persistence.js +++ b/persistence.js @@ -379,6 +379,21 @@ LevelPersistence.prototype.streamWill = function (brokers) { })) } +LevelPersistence.prototype.getClientList = function (topic) { + var valueStream = this._db.createValueStream({ + gt: SUBSCRIPTIONS, + lt: SUBSCRIPTIONS + '\xff', + valueEncoding: msgpack + }) + + return pump(valueStream, through.obj(function (chunk, enc, cb) { + if (chunk.topic === topic) { + this.push(chunk.clientId) + } + cb() + })) +} + LevelPersistence.prototype.destroy = function (cb) { this._db.close(cb) }