check for responsiveness when maxBufferSize is set

This commit is contained in:
Kevin Jahns 2017-10-02 15:45:23 +02:00
parent 725273167e
commit 829a094c6d
2 changed files with 17 additions and 2 deletions

View File

@ -8,7 +8,8 @@ Y({
connector: {
name: 'websockets-client',
url: 'http://127.0.0.1:1234',
room: 'html-editor-example6'
room: 'html-editor-example6',
// maxBufferLength: 100
},
share: {
xml: 'XmlFragment()' // y.share.xml is of type Y.Xml with tagname "p"

View File

@ -213,7 +213,7 @@ export default function extendConnector (Y/* :any */) {
self.broadcastOpBuffer = ops.slice(i)
self.broadcast(encoder.createBuffer())
if (i !== length) {
setTimeout(broadcastOperations, 100)
self.whenRemoteResponsive().then(broadcastOperations)
}
}
}
@ -225,6 +225,20 @@ export default function extendConnector (Y/* :any */) {
}
}
/*
* Somehow check the responsiveness of the remote clients/server
* Default behavior:
* Wait 100ms before broadcasting the next batch of operations
*
* Only used when maxBufferLength is set
*
*/
whenRemoteResponsive () {
return new Promise(function (resolve) {
setTimeout(resolve, 100)
})
}
/*
You received a raw message, and you know that it is intended for Yjs. Then call this function.
*/