JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 666
  • Score
    100M100P100Q130610F
  • License SEE LICENSE IN LICENSE.txt

MigratoryData Client API for JavaScript/Node.js

Package Exports

  • migratorydata-client

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (migratorydata-client) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

MigratoryData Client for Node.js

Below you can find a tutorial and a usage example. For more information please refer to MigratoryData Documentation.

Usage

Install the MigratoryData client library version 6 using npm:

    npm install migratorydata-client

To install an older MigratoryData client library version 5.x, use for example:

    npm i migratorydata-client@5.1.10

Create a MigratoryData client:

    require("migratorydata-client");
    var client = new MigratoryDataClient();  

Initialize the MigratoryData client:

    client.setMessageHandler(function(message) {
        console.log(message.subject + " = " + message.content);
    });
    
    client.setStatusHandler(function(event) {
        console.log("Status : " + event.type + " : " + event.info);	
    });
    
    client.setEntitlementToken("some-token");
    client.setServers([ "http://127.0.0.1:8800" ]);
    client.subscribe([ "/server/status" ]);

Connect to the MigratoryData server and start receiving events:

    client.connect();

Disconnect from the MigratoryData server:

    client.disconnect();

Example client application

Copy the code below to a file named echo-client.js and run it using the following command:

$ node echo-client.js

The client application connects to the MigratoryData server deployed at localhost:8800, subscribes to a subject /server/status, publishes a message every second on the same subject to the MigratoryData server, and receives from the MigratoryData server the published message.

require("migratorydata-client");

function publish() {
    var date = new Date();
    var time = date.getTime();

    var mySubject = "/server/status";
    var myContent = "content-" + time;
    var myClosure = "id-" + time;

    var message = {
        subject : mySubject,
        content : myContent,
        closure : myClosure
    };

    client.publish(message);
}

var client = new MigratoryDataClient();

// uncomment next line for setups using load balancing with DNS round-robin
//client.setDnsOptions({dnsResolve: true});

client.setMessageHandler(function(message) {
    console.log("Got message : [" + message.subject + " = " + message.content + "]");
});

client.setStatusHandler(function(event) {
    console.log("Status : " + event.type + " : " + event.info);
    
    // in this example, publication starts once it gets NOTIFY_SERVER_UP
    if (event.type == MigratoryDataClient.NOTIFY_SERVER_UP) {
        publish();
    }
    
    // normally, next publication should be performed once the client gets 
    // the status of the previous publication
    if (event.type ==  MigratoryDataClient.NOTIFY_PUBLISH_OK) {
        // publish a new message after let's say 1000 milliseconds
        setTimeout(function() {
         	publish();
        }, 1000);
    }
    
    if (event.type ==  MigratoryDataClient.NOTIFY_PUBLISH_FAILED) {
        // normally the previous message should be republished here
    }
    
    if (event.type ==  MigratoryDataClient.NOTIFY_PUBLISH_DENIED) {
        console.log("Check your entitlement token");
    }

});

client.setEntitlementToken("some-token");
client.setServers([ "http://127.0.0.1:8800" ]);
client.subscribe([ "/server/status" ]);

client.connect();