From d141da4430f5877c52b1aa592903e55e6e784367 Mon Sep 17 00:00:00 2001 From: Ulion Date: Fri, 15 Jan 2021 21:13:12 +0800 Subject: [PATCH] Fix destory (#48) * Fix destory * In case disconnect when the doc is not loaded --- packages/client/src/automerge-editor.ts | 4 ++++ packages/client/src/withSocketIO.ts | 2 ++ 2 files changed, 6 insertions(+) diff --git a/packages/client/src/automerge-editor.ts b/packages/client/src/automerge-editor.ts index d181e17..77f67fd 100644 --- a/packages/client/src/automerge-editor.ts +++ b/packages/client/src/automerge-editor.ts @@ -149,6 +149,10 @@ export const AutomergeEditor = { garbageCursor: (e: AutomergeEditor, docId: string) => { const doc = e.docSet.getDoc(docId) + if (!doc) { + return + } + const changed = Automerge.change(doc, (d: any) => { delete d.cursors }) diff --git a/packages/client/src/withSocketIO.ts b/packages/client/src/withSocketIO.ts index 03c861a..b748cfa 100644 --- a/packages/client/src/withSocketIO.ts +++ b/packages/client/src/withSocketIO.ts @@ -122,6 +122,8 @@ const withSocketIO = ( */ e.destroy = () => { + e.socket.removeListener('disconnect') + e.socket.close() e.closeConnection()