strong-mesh-client
Background
This module provides a node.js and browser client that interacts with a set of
strong-pm APIs.
Usage
Node.js
Below is an example setting up the mesh client for use in node.js.
var mesh = MeshClient.create('/path/to/config/file.json', {
interval: 2000
});
mesh.ManagerHost.create({host: 'foo.com', port: 3000});
Browser + Proxy
First mount the proxy as an express middleware / route handler.
var meshProxy = require('strong-mesh-client/proxy/server')('/path/to/config/file.json', {
interval: 2000
});
app.use('/path/to/proxy', meshProxy.middleware(app));
Add the client script.
<script src="/path/to/proxy/client.js"></script>
Interact with mesh from the browser via the proxy.
var mesh = require('strong-mesh-client')('http://localhost:3000');;
mesh.notifications.on('host changed', function() {
mesh.ManagerHost.find(function(err, hosts) {
$scope.hosts = hosts;
$scope.$apply();
});
});
mesh.ManagerHost.create({
host: '...',
port: ...
}, function(err, inst) {
});
ManagerHost.deleteById('...', cb);
managerHost.action({
cmd: 'stop'
}, cb);
Models
ManagerHost
{
host: 'foo.com',
port: 3000,
error: {message: '...', status: 500},
errorType: 'connection',
app: {
name: 'appname',
version: '1.2.3',
port: 4000
},
actions: [
'start',
'edit',
'delete'
],
processes: {
targetCount: 7,
pids: [{
id: '...',
pid: 123
}]
},
credentials: {
username: '...',
password: '...'
}
}
LoadBalancer
{
host: 'foo.com',
port: 3000,
credentials: {
username: '...',
password: '...'
},
error: {status: 500, message: '...'}
}