Skip to content

Commit 0bb3b2b

Browse files
authored
Only request changes from couch that make sense... 'now' or most recent since reconnect (#8344)
* just the start * initial request is for "now", reconnects track sequenc and request what is missed
1 parent e7780c0 commit 0bb3b2b

2 files changed

Lines changed: 6 additions & 0 deletions

File tree

src/plugins/persistence/couch/CouchChangesFeed.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
let connected = false;
44
let couchEventSource;
55
let changesFeedUrl;
6+
let lastSequence = 'now';
67
const keepAliveTime = 20 * 1000;
78
let keepAliveTimer;
89
const controller = new AbortController();
@@ -61,6 +62,7 @@
6162
console.debug('📩 Received message from CouchDB 📩');
6263

6364
const objectChanges = JSON.parse(event.data);
65+
lastSequence = objectChanges.seq !== undefined ? objectChanges.seq : lastSequence;
6466
connections.forEach(function (connection) {
6567
connection.postMessage({
6668
objectChanges
@@ -81,6 +83,9 @@
8183

8284
if (!couchEventSource || couchEventSource.readyState === EventSource.CLOSED) {
8385
console.debug(`⇿ Opening CouchDB change feed connection for ${changesFeedUrl} ⇿`);
86+
const sseURL = new URL(changesFeedUrl);
87+
sseURL.searchParams.set('since', lastSequence);
88+
changesFeedUrl = sseURL.toString();
8489
couchEventSource = new EventSource(changesFeedUrl);
8590
couchEventSource.onerror = self.onerror;
8691
couchEventSource.onopen = self.onopen;

src/plugins/persistence/couch/CouchObjectProvider.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -616,6 +616,7 @@ class CouchObjectProvider {
616616
const sseURL = new URL(sseChangesPath);
617617
sseURL.searchParams.append('feed', 'eventsource');
618618
sseURL.searchParams.append('style', 'main_only');
619+
sseURL.searchParams.append('since', 'now');
619620
sseURL.searchParams.append('heartbeat', HEARTBEAT);
620621

621622
if (typeof SharedWorker === 'undefined') {

0 commit comments

Comments
 (0)