diff --git a/package.json b/package.json index 76c28a2..d176710 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aedes-persistence-level", - "version": "3.0.0", + "version": "3.0.1", "description": "LevelDB persistence for Aedes", "main": "persistence.js", "scripts": { diff --git a/persistence.js b/persistence.js index 3386e92..8260a5f 100644 --- a/persistence.js +++ b/persistence.js @@ -64,11 +64,22 @@ LevelPersistence.prototype.storeRetained = function (packet, cb) { } LevelPersistence.prototype.createRetainedStream = function (pattern) { + var qlobber = new Qlobber(QlobberOpts) + qlobber.add(pattern, true) + return this._db.createValueStream({ gt: 'retained:', lt: 'retained\xff', valueEncoding: msgpack - }) + }).pipe( + through.obj( + function (packet, encoding, deliver) { + if (qlobber.match(packet.topic).length) { + deliver(null, packet) + } + } + ) + ) } function withClientId (sub) {