Repository navigation
Expand file tree
/
Copy pathserver.js
More file actions
119 lines (81 loc) · 2.85 KB
/
Copy pathserver.js
File metadata and controls
119 lines (81 loc) · 2.85 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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
const express = require('express');
const http = require('http');
const WebSocket = require('ws');
const path = require('path');
const bodyParser = require('body-parser')
const app = express();
const EventHubReader = require('./scripts/event-hub-reader.js');
var sCONNECTION_STRING = ""
var sDEVICE_ID = ""
var sSERVICE_KEY = ""
var sCONSUMER_GROUP = ""
app.use(express.static(path.join(__dirname, 'public')));
app.use( bodyParser.json() ); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
extended: true
}));
let server = http.createServer(app);
let wss = new WebSocket.Server({ server });
wss.broadcast = (data) => {
wss.clients.forEach((client) => {
if (client.readyState === WebSocket.OPEN) {
try {
console.log(`Broadcasting data ${data}`);
client.send(data);
} catch (e) {
console.error(e);
}
}
});
};
app.post('/action_page', (req, res) => {
sCONNECTION_STRING = req.body.connection_string
sDEVICE_ID = req.body.device_id
sSERVICE_KEY = req.body.service_key
sCONSUMER_GROUP = req.body.consumer_group
res.redirect('/home');
})
app.get("/home", (req, res) => {
const eventHubReader = new EventHubReader(sSERVICE_KEY, sCONSUMER_GROUP);
(async () => {
await eventHubReader.startReadMessage((message, date) => {
try {
const payload = {
Type : message.type,
IotData: message.data,
MessageDate: date || Date.now().toISOString(),
};
console.log(payload)
wss.broadcast(JSON.stringify(payload));
} catch (err) {
console.error('Error broadcasting: [%s] from [%s].', err, message);
}
});
})().catch();
res.sendFile(path.join(__dirname, 'public/home.html'));
})
wss.on('connection', ws => {
ws.on('message', message => {
console.log("Client Message : " + message)
if ( JSON.parse(message).method == 'sendMessage') {
var messageContent = JSON.parse(message).messageContent
var Client = require('azure-iothub').Client;
var Message = require('azure-iot-common').Message;
var ServiceClient = Client.fromConnectionString(sSERVICE_KEY)
ServiceClient.open(function (err) {
if (err) {
console.error('Could not connect: ' + err.message);
} else {
console.log('Service client connected');
var message = new Message("Data" + "," + messageContent)
//console.log('Sending message: ' + message.getData());
console.log(sDEVICE_ID);
ServiceClient.send(sDEVICE_ID, message);
console.log("Buraya geldi")
}
});
}
})})
server.listen(process.env.PORT || '3030', () => {
console.log('Listening on %d.', server.address().port);
});