migratorydata-client
TypeScript icon, indicating that this package has built-in type declarations

6.0.11 • Public • Published

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 use the following command (MigratoryData client version 6 can be used with the MigratoryData server 6.0.1 or later and the MigratoryData KE server 6.0.1 or later):

    npm install migratorydata-client@~6.0.11

To install MigratoryData client library version 5 use the following command (MigratoryData client version 5 can be used with MigratoryData Server 5.0.*):

    npm install migratorydata-client@~5.1.11

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 message = {
        subject : "/server/status",
        content : "content-" + time,
        closure : "id-" + time
    };

    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();

Package Sidebar

Install

npm i migratorydata-client

Weekly Downloads

57

Version

6.0.11

License

SEE LICENSE IN LICENSE.txt

Unpacked Size

124 kB

Total Files

6

Last publish

Collaborators

  • migratorydata