diff options
Diffstat (limited to 'src/server/websocket.ts')
-rw-r--r-- | src/server/websocket.ts | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/server/websocket.ts b/src/server/websocket.ts index 34ef3d8b3..7d111f359 100644 --- a/src/server/websocket.ts +++ b/src/server/websocket.ts @@ -291,8 +291,8 @@ export namespace WebSocket { socket.broadcast.emit(MessageStore.UpdateField.Message, diff); socket.id = id; } else socket.broadcast.emit(MessageStore.UpdateField.Message, diff); + dispatchNextOp(diff.id); }, false); - dispatchNextOp(diff.id); } function remFromListField(socket: Socket, diff: Diff, curListItems?: Transferable): void { @@ -312,8 +312,8 @@ export namespace WebSocket { socket.broadcast.emit(MessageStore.UpdateField.Message, diff); socket.id = id; } else socket.broadcast.emit(MessageStore.UpdateField.Message, diff); + dispatchNextOp(diff.id); }, false); - dispatchNextOp(diff.id); } const pendingOps = new Map<string, { diff: Diff, socket: Socket }[]>(); @@ -338,15 +338,13 @@ export namespace WebSocket { pendingOps.get(diff.id)!.push({ diff, socket }); return true; } + pendingOps.set(diff.id, [{ diff, socket }]); if (diff.diff.$addToSet) { - pendingOps.set(diff.id, [{ diff, socket }]); return GetRefFieldLocal([diff.id, (result?: Transferable) => addToListField(socket, diff, result)]); // would prefer to have Mongo handle list additions direclty, but for now handle it on our own } if (diff.diff.$remFromSet) { - pendingOps.set(diff.id, [{ diff, socket }]); return GetRefFieldLocal([diff.id, (result?: Transferable) => remFromListField(socket, diff, result)]); // would prefer to have Mongo handle list additions direclty, but for now handle it on our own } - pendingOps.set(diff.id, [{ diff, socket }]); return GetRefFieldLocal([diff.id, (result?: Transferable) => SetField(socket, diff, result)]); } function SetField(socket: Socket, diff: Diff, curListItems?: Transferable) { |