-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReceiver2.js
More file actions
88 lines (80 loc) · 2.92 KB
/
Receiver2.js
File metadata and controls
88 lines (80 loc) · 2.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/**
* AMQP 1.0 receiver (JMS filter)
* @author piero@tilab
* @version 0.0.4
*/
var container = require('rhea');
var filters = require('rhea').filter;
var amqp_types = require('rhea').types;
/* var dateFormat = require('dateformat');
var tsFormat = function() { return dateFormat(Date.now(), "dd/mm/yyyy HH:MM:ss.l\t"); }
*/
const logger = require('./logger.js').logger;
logger.info("ciao")
/*
var args = require('./options.js').options({
'client': { default: 'my-receiver-jms-js', describe: 'name of identifier for client container'},
's': { alias: 'selector', default: "nat='it' AND prod='a22' AND geo LIKE 'u0j2%'", describe: "the selector string to use ('' or null for none)"},
'm': { alias: 'messages', default: 10, describe: 'number of messages to expect'},
'n': { alias: 'node', default: 'croads', describe: 'name of node (e.g. queue or topic) from which messages are received'},
'h': { alias: 'host', default: 'localhost', describe: 'dns or ip name of server where you want to connect'},
'p': { alias: 'port', default: 5673, describe: 'port to connect to'},
'u': { alias: 'user', default: 'test', describe: 'username'},
'w': { alias: 'pwd', default: 'test', describe: 'password'},
'f': { alias: 'flag', default: '', describe: 'flags (e.g. verbose)'}
}).help('help').argv;
var opts = {
port: args.port,
host: args.host,
container_id: args.client,
username: args.user,
password: args.pwd,
};
if (args.flag=='noauth') {
delete opts.username;
delete opts.password;
}
var received = 0;
var expected = args.messages;
container.on('message', function (context) {
if (context.message.properties && context.message.properties.id && context.message.properties.id < received) {
// ignore duplicate message
return;
}
if (expected === 0 || received < expected) {
console.log(tsFormat()+received+"-received: ", context.message);
if (++received === expected) {
context.receiver.detach();
context.connection.close();
}
}
});
var connection = container.connect(opts).on('connection_open', function () {
console.log(tsFormat()+'connection_open: '+opts.host+":"+opts.port);
}).on('connection_close', function () {
console.log(tsFormat()+'connection_close');
}).on('connection_error', function (e) {
console.log(tsFormat()+'connection_error',e.error.message, e.error.condition);
}).on('error', function (e) {
console.log(tsFormat()+'error',e.error.message, e.error.condition);
});
if (args.flag=='rabbit') {
args.node = "/exchange/"+args.node;
}
if (args.selector.toLowerCase()=="null" || args.selector=="''") {
var f1 = null;
} else {
f1 = filters.selector(args.selector);
}
if (args.flag=='verbose') console.log(tsFormat()+"filter: ", f1);
connection.open_receiver({
name: 'my-jms-sub',
source: {
address: args.node,
filter: f1
}
})
.on('receiver_open', function() {
console.log(tsFormat()+'receiver_open, filter: '+args.selector, ", address: "+args.node);
});
*/