aedes-persistence-nedb
Advanced tools
Comparing version 1.0.4 to 1.0.5
@@ -0,0 +0,0 @@ { |
@@ -0,0 +0,0 @@ 'use strict'; |
{ | ||
"name": "aedes-persistence-nedb", | ||
"version": "1.0.4", | ||
"version": "1.0.5", | ||
"description": "NeDB persistence for Aedes.", | ||
@@ -5,0 +5,0 @@ "main": "persistence.js", |
@@ -90,7 +90,12 @@ 'use strict'; | ||
Persistence.prototype.createRetainedStream = function (pattern) { | ||
return this.createRetainedStreamCombi([pattern]); | ||
}; | ||
Persistence.prototype.createRetainedStreamCombi = function (patterns) { | ||
var self = this; | ||
var topics = patterns.map(function (pattern) { return { topic: new RegExp(pattern.replace(/(#|\+).*$/, '')) }; }); | ||
var readable = new Stream.Readable({objectMode: true}); | ||
readable.curIndex = 0; | ||
readable._read = function (size) { | ||
self.retained.find({ topic: new RegExp(pattern.replace(/(#|\+).*$/, '')) }, { _id: 0 }).skip(readable.curIndex).limit(1).exec(function (err, docs) { | ||
self.retained.find({ $or: topics }, { _id: 0 }).skip(readable.curIndex).limit(1).exec(function (err, docs) { | ||
if (err || docs.length === 0) { return readable.push(null); } | ||
@@ -176,9 +181,13 @@ readable.curIndex++; | ||
Persistence.prototype.outgoingEnqueue = function (sub, packet, callback) { | ||
this.outgoingEnqueueCombi([sub], packet, callback); | ||
}; | ||
Persistence.prototype.outgoingEnqueueCombi = function (subs, packet, callback) { | ||
var self = this; | ||
if (!self.ready) { | ||
self.once('ready', self.outgoingEnqueue.bind(self, sub, packet, callback)); | ||
self.once('ready', self.outgoingEnqueue.bind(self, subs, packet, callback)); | ||
return; | ||
} | ||
var doc = { clientId: sub.clientId, packet: transformPacket(new Packet(packet)) }; | ||
self.outgoing.insert(doc, function (err, inserted) { | ||
var docs = subs.map(function (sub) { return { clientId: sub.clientId, packet: transformPacket(new Packet(packet)) }; }); | ||
self.outgoing.insert(docs, function (err, inserted) { | ||
return callback(err); | ||
@@ -185,0 +194,0 @@ }); |
@@ -0,0 +0,0 @@ [](https://travis-ci.org/ovhemert/aedes-persistence-nedb) |
@@ -0,0 +0,0 @@ 'use strict'; |
@@ -0,0 +0,0 @@ 'use strict'; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
1143
41860
9