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
<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>