Implement http based callback

This commit is contained in:
Mansehej Singh
2020-07-09 18:05:42 +05:30
parent 849aaefe4d
commit adfb8724be
4 changed files with 105 additions and 0 deletions

View File

@@ -7,6 +7,14 @@ const decoding = require('lib0/dist/decoding.cjs')
const mutex = require('lib0/dist/mutex.cjs')
const map = require('lib0/dist/map.cjs')
const debounce = require('lodash.debounce')
const callbackHandler = require('./callback.js').callbackHandler
const isCallbackSet = require('./callback.js').isCallbackSet
const CALLBACK_DEBOUNCE_WAIT = process.env.CALLBACK_DEBOUNCE_WAIT || 2000
const CALLBACK_DEBOUNCE_MAXWAIT = process.env.CALLBACK_DEBOUNCE_MAXWAIT || 10000
const wsReadyStateConnecting = 0
const wsReadyStateOpen = 1
const wsReadyStateClosing = 2 // eslint-disable-line
@@ -110,6 +118,13 @@ class WSSharedDoc extends Y.Doc {
}
this.awareness.on('update', awarenessChangeHandler)
this.on('update', updateHandler)
if (isCallbackSet()) {
this.on('update', debounce(
callbackHandler,
CALLBACK_DEBOUNCE_WAIT,
{ maxWait: CALLBACK_DEBOUNCE_MAXWAIT }
))
}
}
}