Service Worker Connector for Yjs
It enables communication with a Service Worker thread. The Shared Worker can handle connections, and save changes using a persistent database (e.g. y-indexeddb), while the clients connect to the service worker leveraging improved performance. You can also set it up to perform background tasks.
- Only the Shared Worker connects to the server / other clients (less connection overhead)
- Works best with y-indexeddb
- Faster start-up when multiple windows are open
- Background tasks
Retrieve this with bower or npm.
npm install y-serviceworker --save
bower install y-serviceworker --save
// register yjs service worker
if('serviceWorker' in navigator){
// Register service worker
// it is important to copy yjs-sw-template to the root directory!
navigator.serviceWorker.register('./yjs-sw-template.js').then(function(reg){
console.log("Yjs service worker registration succeeded. Scope is " + reg.scope);
}).catch(function(err){
console.error("Yjs service worker registration failed with error " + err);
})
}
// Connect to the service worker
Y({
db: {
name: 'memory'
},
connector: {
name: 'serviceworker',
room: 'my room name'
},
share: {
textarea: 'Text' // y.share.textarea is of type Y.Text
}
}).then(function (y) {
// bind the textarea to a shared text element
y.share.textarea.bind(document.getElementById('textfield'))
}
y-serviceworker is licensed under the MIT License.