From 1f1ec5e1ce014cfc96400b908e5e9a439c30fca7 Mon Sep 17 00:00:00 2001 From: bobzel Date: Mon, 5 Oct 2020 12:51:16 -0400 Subject: try sending list back to sender if we notice the set of fields is different than the originally sent set of fields --- src/server/websocket.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/websocket.ts b/src/server/websocket.ts index 7d13480f5..0d19c3a91 100644 --- a/src/server/websocket.ts +++ b/src/server/websocket.ts @@ -276,9 +276,18 @@ export namespace WebSocket { delete diff.diff.$addToSet; const updatefield = Array.from(Object.keys(diff.diff.$set))[0]; const list = (results as any).fields?.[updatefield.replace("fields.", "")].fields; + const prelen = diff.diff.$set[updatefield].fields.length; list.forEach((item: any) => !diff.diff.$set[updatefield].fields.some((x: any) => x.fieldId === item.fieldId) && diff.diff.$set[updatefield].fields.push(item)); + const sendBack = diff.diff.$set[updatefield].fields.length !== prelen; Database.Instance.update(diff.id, diff.diff, - () => socket.broadcast.emit(MessageStore.UpdateField.Message, diff), false); + () => { + if (sendBack) { + const id = socket.id; + socket.id = ""; + socket.broadcast.emit(MessageStore.UpdateField.Message, diff); + socket.id = id; + } else socket.broadcast.emit(MessageStore.UpdateField.Message, diff); + }, false); console.log(results, diff.diff.$set); } -- cgit v1.2.3-70-g09d2