import Rest from './webapi/Rest'; class KeepAliveWorkerManager { worker = null; keepAliveResultHandler = null; init = (keepAliveResultHandler, minutes = 5, url = 'session/keep-alive') => { if (window.Worker) { this.keepAliveResultHandler = keepAliveResultHandler; this.worker = new Worker('libs/KeepAliveWorker.js'); this.worker.postMessage({ type: "KEEP_ALIVE_TEST" }); const fullUrl = Rest.createRestLink(url); this.worker.postMessage({ type: "START_KEEP_ALIVE", data: { url: fullUrl, minutes } }); this.worker.onmessage = this.onmessage.bind(this); } } onmessage = (e) => { const { type, data } = e.data; console.log('Message received from [KeepAliveWorker]', e.data); if (this.keepAliveResultHandler && type === 'KEEP_ALIVE_RESULT') { this.keepAliveResultHandler(data); } } } export default new KeepAliveWorkerManager();