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