diff --git a/packages/data-center/src/provider/affine/affine.ts b/packages/data-center/src/provider/affine/affine.ts index f2d99cb833..cb567bc8f5 100644 --- a/packages/data-center/src/provider/affine/affine.ts +++ b/packages/data-center/src/provider/affine/affine.ts @@ -74,6 +74,12 @@ export class AffineProvider extends BaseProvider { ws = new WebsocketProvider('/', room, doc); this._wsMap.set(room, ws); } + // close all websocket links + Array.from(this._wsMap.entries()).forEach(([id, ws]) => { + if (id !== room) { + ws.disconnect(); + } + }); ws.connect(); await new Promise((resolve, reject) => { // TODO: synced will also be triggered on reconnection after losing sync