Skip to content

Commit 5277cca

Browse files
authored
Merge pull request moscajs#694 from mitsos1os/issue-693
Also persist QoS 0 subscriptions when clean flag false
2 parents 1332f1a + 9d7c706 commit 5277cca

5 files changed

Lines changed: 13 additions & 13 deletions

File tree

lib/persistence/levelup.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,11 +162,10 @@ LevelUpPersistence.prototype.storeSubscriptions = function(client, done) {
162162
var now = Date.now();
163163

164164
if (!client.clean) {
165+
// Issue #693
165166
Object.keys(client.subscriptions).forEach(function(key) {
166-
if (client.subscriptions[key].qos > 0) {
167-
subscriptions[key] = client.subscriptions[key];
168-
subscriptions[key].ttl = that.options.ttl.subscriptions + now;
169-
}
167+
subscriptions[key] = client.subscriptions[key];
168+
subscriptions[key].ttl = that.options.ttl.subscriptions + now;
170169
});
171170
this._clientSubscriptions.put(client.id, subscriptions, done);
172171
Object.keys(subscriptions).forEach(function(key) {

lib/persistence/mongo.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,11 @@ MongoPersistence.prototype.storeSubscriptions = function(client, done) {
183183
var that = this;
184184

185185
if (!client.clean) {
186-
subscriptions = Object.keys(client.subscriptions).filter(function(key) {
187-
return client.subscriptions[key].qos > 0;
188-
});
186+
// Issue #693
187+
// subscriptions = Object.keys(client.subscriptions).filter(function(key) {
188+
// return client.subscriptions[key].qos > 0;
189+
// });
190+
subscriptions = Object.keys(client.subscriptions);
189191

190192
steed.each(subscriptions, function(key, cb) {
191193
that._subscriptions.findAndModify({

lib/persistence/redis.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -283,10 +283,9 @@ RedisPersistence.prototype.storeSubscriptions = function(client, cb) {
283283
var that = this;
284284
var subscriptions = {};
285285

286+
// Issue #693
286287
Object.keys(client.subscriptions).forEach(function(key) {
287-
if (client.subscriptions[key].qos > 0) {
288-
subscriptions[key] = client.subscriptions[key];
289-
}
288+
subscriptions[key] = client.subscriptions[key];
290289
});
291290

292291
this._client.get(clientSubKey, function(err, currentSubs){

test/persistence/abstract.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@ module.exports = function(create, buildOpts) {
558558
});
559559
});
560560

561-
it("should not store a QoS 0 subscription", function(done) {
561+
it("should store a QoS 0 subscription", function(done) {
562562
var instance = this.instance;
563563
var client = {
564564
id: "my client id - 42",
@@ -573,7 +573,7 @@ module.exports = function(create, buildOpts) {
573573

574574
instance.storeSubscriptions(client, function() {
575575
instance.lookupSubscriptions(client, function(err, results) {
576-
expect(results).to.eql({});
576+
expect(results).to.eql(client.subscriptions);
577577
done();
578578
});
579579
});

test/persistence/mongo_spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ describe("mosca.persistence.Mongo", function() {
8888
var packet = {
8989
topic: "hello/42",
9090
qos: 0,
91-
payload: 'someStringToTest', // not a buffer
91+
payload: 'someStringToTest', // not a Buffer
9292
messageId: 42
9393
};
9494

0 commit comments

Comments
 (0)