Compare commits

...

2 Commits

Author SHA1 Message Date
Kevin Jahns
d483d9cc83 13.0.0-78 2019-01-29 01:38:40 +01:00
Kevin Jahns
453407b93d fix connection status and awareness info when disconnected (ws-provider) 2019-01-29 01:38:23 +01:00
3 changed files with 13 additions and 4 deletions

2
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{ {
"name": "yjs", "name": "yjs",
"version": "13.0.0-77", "version": "13.0.0-78",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {

View File

@@ -1,6 +1,6 @@
{ {
"name": "yjs", "name": "yjs",
"version": "13.0.0-77", "version": "13.0.0-78",
"description": "A ", "description": "A ",
"main": "./build/yjs.js", "main": "./build/yjs.js",
"module": "./index.js'", "module": "./index.js'",

View File

@@ -61,15 +61,24 @@ const setupWS = (doc, url) => {
websocket.onclose = () => { websocket.onclose = () => {
doc.ws = null doc.ws = null
doc.wsconnected = false 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', { doc.emit('status', {
status: 'connected' status: 'disconnected'
}) })
setTimeout(setupWS, reconnectTimeout, doc, url) setTimeout(setupWS, reconnectTimeout, doc, url)
} }
websocket.onopen = () => { websocket.onopen = () => {
doc.wsconnected = true doc.wsconnected = true
doc.emit('status', { doc.emit('status', {
status: 'disconnected' status: 'connected'
}) })
// always send sync step 1 when connected // always send sync step 1 when connected
const encoder = Y.encoding.createEncoder() const encoder = Y.encoding.createEncoder()