From 453407b93df4449254d20d3a7ab56a251507ccfc Mon Sep 17 00:00:00 2001 From: Kevin Jahns Date: Tue, 29 Jan 2019 01:38:23 +0100 Subject: [PATCH] fix connection status and awareness info when disconnected (ws-provider) --- provider/websocket/WebSocketProvider.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/provider/websocket/WebSocketProvider.js b/provider/websocket/WebSocketProvider.js index b40cdde6..30ed5d3b 100644 --- a/provider/websocket/WebSocketProvider.js +++ b/provider/websocket/WebSocketProvider.js @@ -61,15 +61,24 @@ const setupWS = (doc, url) => { websocket.onclose = () => { doc.ws = null doc.wsconnected = false + // update awareness (all users left) + const removed = [] + doc.getAwarenessInfo().forEach((_, userid) => { + removed.push(userid) + }) + doc.awareness = new Map() + doc.emit('awareness', { + added: [], updated: [], removed + }) doc.emit('status', { - status: 'connected' + status: 'disconnected' }) setTimeout(setupWS, reconnectTimeout, doc, url) } websocket.onopen = () => { doc.wsconnected = true doc.emit('status', { - status: 'disconnected' + status: 'connected' }) // always send sync step 1 when connected const encoder = Y.encoding.createEncoder()