1.0.4 • Published 10 years ago
bonvoyage v1.0.4
bonvoyage
seaport is a great service for service discovery on a network, but how do you find the seaport server? Enter mDNS - this lets us broadcast the availability of a seaport server on the network.
Server
To advertise a seaport server, do the following:
var Seaport = require("seaport"),
bonvoyage = require("bonvoyage");
// start seaport
var seaport = Seaport.createServer();
seaport.listen();
// publish bonvoyage advert
var bonvoyageServer = new bonvoyage.Server();
bonvoyageServer.publish(seaport);
Client
To register a service with a seaport server, do the following:
var bonvoyage = require("bonvoyage");
var bonvoyageClient = new bonvoyage.Client();
bonvoyageClient.register({
role: "http",
version: "1.0.0",
createService: function(port) {
var restServer = container.find("restServer");
restServer.start(port);
}
});
If seaport goes away and comes back, the service will be re-registered automagically on the same port with the same role and version without being re-created.
To find a seaport server, do the following:
var bonvoyage = require("bonvoyage");
var bonvoyageClient = new bonvoyage.Client();
bonvoyageClient.find(function(error, seaport) {
// found seaport, now use it as normal
seaport.get('http@1.0.x', function (services) {
console.info("http://" + services[0].host + ":" + services[0].port);
});
});
This will fire once when a seaport server is found on the network.
To be notified when seaport goes away and comes back, listen on the client for seaportUp
and seaportDown
events.