From 5a7e1a34f9287a67f69394a6cf3b977d48bdb41c Mon Sep 17 00:00:00 2001
From: bratelefant <59534030+bratelefant@users.noreply.github.com>
Date: Sat, 19 Aug 2023 12:52:35 +0200
Subject: [PATCH 1/3] set subs to not ready on disconnect

---
 src/Meteor.js | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/Meteor.js b/src/Meteor.js
index f3c5663..d85fe3d 100644
--- a/src/Meteor.js
+++ b/src/Meteor.js
@@ -50,6 +50,11 @@ const Meteor = {
   disconnect() {
     if (Data.ddp) {
       Data.ddp.disconnect();
+      for (var i in Data.subscriptions) {
+        const sub = Data.subscriptions[i];
+        sub.ready = false;
+        sub.readyDeps.changed();
+      }
     }
   },
   _subscriptionsRestart() {

From 7999b8b915a6494715843ed68130e565ebca880f Mon Sep 17 00:00:00 2001
From: bratelefant <59534030+bratelefant@users.noreply.github.com>
Date: Sat, 19 Aug 2023 14:28:23 +0200
Subject: [PATCH 2/3] also mark as unready on server disconnects

---
 src/Meteor.js | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/Meteor.js b/src/Meteor.js
index d85fe3d..15a87a2 100644
--- a/src/Meteor.js
+++ b/src/Meteor.js
@@ -50,11 +50,6 @@ const Meteor = {
   disconnect() {
     if (Data.ddp) {
       Data.ddp.disconnect();
-      for (var i in Data.subscriptions) {
-        const sub = Data.subscriptions[i];
-        sub.ready = false;
-        sub.readyDeps.changed();
-      }
     }
   },
   _subscriptionsRestart() {
@@ -174,6 +169,13 @@ const Meteor = {
         console.info('Disconnected from DDP server.');
       }
 
+      // Mark subscriptions as ready=false
+      for (var i in Data.subscriptions) {
+        const sub = Data.subscriptions[i];
+        sub.ready = false;
+        sub.readyDeps.changed();
+      }
+
       if (!Data.ddp.autoReconnect) return;
 
       if (!lastDisconnect || new Date() - lastDisconnect > 3000) {

From 6fd0e1711aed46c75519b16afbc94e420cf57382 Mon Sep 17 00:00:00 2001
From: bratelefant <59534030+bratelefant@users.noreply.github.com>
Date: Wed, 6 Sep 2023 16:02:06 +0200
Subject: [PATCH 3/3] Add _lastSessionId to ddp

---
 lib/ddp.js | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/ddp.js b/lib/ddp.js
index 81d61c8..c55c72f 100644
--- a/lib/ddp.js
+++ b/lib/ddp.js
@@ -115,6 +115,7 @@ export default class DDP extends EventEmitter {
     this.socket.on('message:in', (message) => {
       if (message.msg === 'connected') {
         this.status = 'connected';
+        this._lastSessionId = message.session;
         this.messageQueue.process();
         this.emit('connected');
       } else if (message.msg === 'ping') {