bonvoyage

1.0.4 • Public • Published

bonvoyage Dependency Status

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.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.4
    2
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.0.4
    2
  • 1.0.3
    1
  • 1.0.2
    1
  • 1.0.1
    1
  • 1.0.0
    1

Package Sidebar

Install

npm i bonvoyage

Weekly Downloads

6

Version

1.0.4

License

none

Last publish

Collaborators

  • achingbrain