Skip to content

Commit b31e1e5

Browse files
committed
fix(awareness): only send updates about the local client
Signed-off-by: Max <max@nextcloud.com>
1 parent 4675077 commit b31e1e5

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/services/y-websocket.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ messageHandlers[messageSync] = (
7474
}
7575
}
7676

77+
// modified to only send own awareness
7778
messageHandlers[messageQueryAwareness] = (
7879
encoder,
7980
_decoder,
@@ -86,7 +87,8 @@ messageHandlers[messageQueryAwareness] = (
8687
encoder,
8788
awarenessProtocol.encodeAwarenessUpdate(
8889
provider.awareness,
89-
Array.from(provider.awareness.getStates().keys()),
90+
[provider.doc.clientID],
91+
// Array.from(provider.awareness.getStates().keys()),
9092
),
9193
)
9294
}
@@ -377,16 +379,22 @@ export class WebsocketProvider extends Observable {
377379
}
378380
this.doc.on('update', this._updateHandler)
379381
/**
382+
* Send an awareness update message when local awareness changes
383+
* modified to only send update about this client.
380384
* @param {any} changed
381385
* @param {any} _origin
382386
*/
383387
this._awarenessUpdateHandler = ({ added, updated, removed }, _origin) => {
384-
const changedClients = added.concat(updated).concat(removed)
388+
// const changedClients = added.concat(updated).concat(removed)
385389
const encoder = encoding.createEncoder()
386390
encoding.writeVarUint(encoder, messageAwareness)
387391
encoding.writeVarUint8Array(
388392
encoder,
389-
awarenessProtocol.encodeAwarenessUpdate(awareness, changedClients),
393+
awarenessProtocol.encodeAwarenessUpdate(
394+
awareness,
395+
[this.doc.clientID],
396+
// changedClients
397+
),
390398
)
391399
broadcastMessage(this, encoding.toUint8Array(encoder))
392400
}

0 commit comments

Comments
 (0)