-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathserver.js
95 lines (83 loc) · 2.78 KB
/
server.js
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
89
90
91
92
93
94
95
var amqp = require('amqp');
var mysql = require('./util/mysql');
var adminService = require('./services/adminService');
var alertService = require('./services/alertService');
var buildingService = require('./services/buildingService');
var clientService = require('./services/clientService');
var guardService = require('./services/guardService');
var reportService = require('./services/reportService');
//DB Pool Initilization
mysql.createConnPool();
var cnn = amqp.createConnection({host:'127.0.0.1'});
cnn.on('ready', function(){
console.log("WFMS-Server listening on service queues");
//Admin Service
cnn.queue('admin_queue', function(q){
q.subscribe(function(message, headers, deliveryInfo, m){
console.log("Message: "+JSON.stringify(message));
adminService.handle_request(message, function(res){
publishQueue(cnn,m,res);
});
});
});
//Alert Service
cnn.queue('alert_queue', function(q){
q.subscribe(function(message, headers, deliveryInfo, m){
console.log("Message: "+JSON.stringify(message));
alertService.handle_request(message, function(res){
publishQueue(cnn,m,res);
});
});
});
//building Service
cnn.queue('building_queue', function(q){
q.subscribe(function(message, headers, deliveryInfo, m){
console.log("Message: "+JSON.stringify(message));
buildingService.handle_request(message, function(res){
publishQueue(cnn,m,res);
});
});
});
//client Service
cnn.queue('client_queue', function(q){
q.subscribe(function(message, headers, deliveryInfo, m){
console.log("Message: "+JSON.stringify(message));
clientService.handle_request(message, function(res){
publishQueue(cnn,m,res);
});
});
});
//guard Service
cnn.queue('guard_queue', function(q){
q.subscribe(function(message, headers, deliveryInfo, m){
console.log("Message: "+JSON.stringify(message));
guardService.handle_request(message, function(res){
publishQueue(cnn,m,res);
});
});
});
//report Service
cnn.queue('report_queue', function(q){
q.subscribe(function(message, headers, deliveryInfo, m){
console.log("Message: "+JSON.stringify(message));
reportService.handle_request(message, function(res){
publishQueue(cnn,m,res);
});
});
});
});
function logQueueReq(message, headers, deliveryInfo, m){
console.log("Message: "+JSON.stringify(message));
console.log("Headers: "+JSON.stringify(headers));
console.log("DeliveryInfo: "+JSON.stringify(deliveryInfo));
}
function publishQueue(conn,m,response){
// console.log("----------------------------------");
// console.log("Publishing To \nQueue: "+m.replyTo + "\nResponse:" + JSON.stringify(response));
// console.log("----------------------------------");
conn.publish(m.replyTo, response, {
contentType:'application/json',
contentEncoding:'utf-8',
correlationId:m.correlationId
});
}