UNPKG

endpointjs

Version:

Endpoint.js enables modules within a web application to discover and use each other, whether that be on the same web page, other browser windows and tabs, iframes, servers and web workers in a reactive way by providing robust discovery, execution and stre

69 lines (61 loc) 2.41 kB
<html> <head></head> <body> <script type="text/javascript"> window.endpointLogLevel = 'debug'; // Do not create the shared worker, which would give other windows // on our same origin access to our dedicated workers. window.endpointConfig = { createSharedWorker: false }; </script> <script src="../build/endpoint.demo.js" type="text/javascript"></script> <p>Console messages will be output to the text box bellow. To see trace information, open the browser console.</p> <a href='#' onclick='createWorkers()'>Step 1: create workers</a><br> <a href='#' onclick='executeWork()'>Step 2: execute work</a><br> <a href='#' onclick='closeWorkers()'>Step 3: close workers</a><br> <textarea id='console' style='width: 1000px; height: 500px;'></textarea> <script type="text/javascript"> var uuid = require('endpoint-uuid'); var workers = []; var registerWorkerApi = { registerWorker: function(name) { var workerFacade = window.endpoint.createFacade(name, '1.0', { neighborhood: 'group' }); workerFacade.on('ready', function() { console.log('worker connected'); workers.push(workerFacade); }); } }; window.endpoint.registerAdapter('worker-register-api', '1.0', registerWorkerApi); function createWorkers() { var toCreate = 3; var workerLink = window.endpoint.getConfiguration().getLink('default-worker'); for (var i = 0; i < toCreate; i++){ console.log('created worker ' + i); var worker = new Worker('worker.js'); workerLink.addWorker(worker); } } function executeWork() { console.log('executing work on ' + workers.length + ' workers'); workers.forEach(function(worker) { worker.getApi().doWork('work') .then(function(result) { console.log('worker completed: ' + result); }); }); } function closeWorkers() { workers.forEach(function(worker) { worker.getApi().terminate(); console.log('terminated worker'); }); } console.log = function (message) { var cons = document.getElementById('console'); cons.innerHTML += message + '\n'; }; </script> </body> </html>