Implement http based callback
This commit is contained in:
15
bin/utils.js
15
bin/utils.js
@@ -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 }
|
||||
))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user