Allows to create a cloud of services.
Let's say we want to create a serivce called hello-world
and this service has an action called say
which produces a message with the sentence Hello World!
depending on the language given in the options of the action.
const service = require('service-cloud-service');
const server = new service.ServiceCloudServer({
address: 'localhost',
port: 1900
});
const service = new service.ServiceCloudService('hello-world');
serviceHelloWorld.addAction('say', function(data, callback) {
const messages = {
'en': 'Hello World!',
'fr': 'Bonjour le Monde!',
'es': 'Hola el Mundo!'
};
callback(undefined, {
message: messages[data.language]
});
});
server.addService(serviceHelloWorld);
const server = new service.ServiceCloudServer({
address: 'localhost',
port: 1900
});
server.addService(service1);
server.addService(service2);
server.addService([ service4, service5 /* [...] */ ]);
If the server cannot find the requested service, it can ask to its gateways. If the gateway has gateways, it can ask to them too, leading to a network of services.
const server = new service.ServiceCloudServer({
address: 'localhost',
port: 1900
});
server.addResolveGateway('http://localhost:1818');
server.addResolveGateway([ 'http://localhost:1818', 'http://localhost:1819' /* [...] */ ]);
server.addResolveGateway({
address: 'localhost',
port: 2000,
path: '/my/root/path',
protocol: 'https:'
});
server.addResolveGateway([{
address: 'localhost',
port: 2000,
path: '/my/root/path',
protocol: 'https:'
}, {
address: 'localhost',
port: 2005,
path: '/my/root/path',
protocol: 'https:'
} /* [...] */ );
server.reference({
serviceName: 'my-service-name'
actionsName: [
'action1',
'action2',
'action3'
],
remote: 'http://localhost:1600'
});