Expose a stompit client as an architect service.
npm install --save architect-stompjs
{
"packagePath": "architect-stompjs",
config: [{
host: 'localhost',
port: 61613
}]
}
Config element is an array of servers as in stompit connection servers.
#### srv
Aternatively, specify a SRV dns name to lookup hosts and ports from DNS.
{
"packagePath": "architect-stompjs",
srv: {
name: 'activemq.example.com'
opts: {
connectHeaders: {
'heart-beat': '25000,25000'
}
}
}
}
Add a queues
object to configure queues avaliable in your application.
Add a topics
object to configure topics avaliable in your application.
Boot Architect :
var path = require('path');
var architect = require("architect");
var configPath = path.join(__dirname, "config.js");
var config = architect.loadConfig(configPath);
architect.createApp(config, function (err, app) {
if (err) {
throw err;
}
console.log('application started');
});
This module require architect-log4js or equivalent as logging service.
Configure sptom service with config.js
:
module.exports = [{
packagePath: "architect-stompjs"
}{
packagePath: "architect-log4js"
}, './routes'];
Consume stomp service in your application :
{
"name": "routes",
"version": "0.0.1",
"main": "index.js",
"private": true,
"plugin": {
"consumes": ["stomp"]
}
}
Eventually use the stomp
service in your app :
module.exports = function setup(options, imports, register) {
var stomp = imports.stomp; //get stomp client
stomp.channel.send('/queue/myqueue', {}, 'application has started.');
register();
};
Configure your alias in the architect config.js
file :
{
"packagePath": "architect-log4js",
config: [{
host: 'localhost',
port: 61613
}],
queues: {
'myqueue' : {
'destination': '/queue/my.queue.name.is.super.long'
'ack': 'client',
}
}
}
Now you can send and recieve messages with the queue alias :
module.exports = function setup(options, imports, register) {
var client = imports.stomp; //get stomp client
var myqueue = client.queues.myqueue;
myqueue.send('application has started.');
register();
};