-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathRTdatamapper.js
More file actions
71 lines (70 loc) · 2.33 KB
/
RTdatamapper.js
File metadata and controls
71 lines (70 loc) · 2.33 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
var _ = require('highland');
var WebSocketClient = require('websocket').client;
// var WebSocket1 = new WebSocketClient();
var WebSocketServer = require('ws').Server;
// var wss = new WebSocketServer({port: 8484});
var WebSocket1 = new WebSocketClient();
var sift = require('sift');
var wss = new WebSocketServer({
port: 5050
});
var serverWs;
wss.on('connection', function(ws) {
console.log('CONNECTED');
// ws.send('Connected');
serverWs = ws;
});
var measures = [];
var source;
// var forwardPort;
module.exports = function(namespaceId,Namespace) {
Namespace.findNamespace(namespaceId, function(err, namespace) {
if (namespace != null) {
// console.log("routes",namespace.dimensions);
// res.send(namespace.dimensions);
measures = [];
measures = namespace.measures;
source = namespace.source;
//console.log(measures);
console.log("called --------------------------------------------------------------------------------------------------------------");
}
});
};
console.log("inside component", measures);
WebSocket1.on('connect', function(connection) {
console.log("Connected..Waiting for some message");
streamData = {};
_('message', connection).map(function(msg) {
var sourceData = JSON.parse(msg.utf8Data)[0];
if (source === sourceData) {
streamData = JSON.parse(msg.utf8Data)[2];
console.log(streamData);
// var keys = Object.keys(streamData); //array of keys in the streaming data
var condition;
var sifter;
for (var k = 0; k < measures.length; k++)
{
var displayValue=measures[k].displayName;
// streamdata, keys
if(measures[k].measureType === "fieldMeasure") {
condition = {};
condition[measures[k].eventField] = {$exists: true};
sifter = sift(condition);
streamData[displayValue] = sifter(streamData) ? streamData[measures[k].eventField] : 0
} else {
condition = {};
condition[measures[k].eventField] = measures[k].eventValue;
sifter = sift(condition);
streamData[displayValue] = sifter(streamData) ? 1 : 0;
}
}
if (serverWs) {
serverWs.send(JSON.stringify(streamData));
}
}
// console.log(streamData);
}).done(function() {
console.log('Done');
});
});
WebSocket1.connect('ws://172.23.238.253:7070');