-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathudp-server.js
48 lines (38 loc) · 1.2 KB
/
udp-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
#!/usr/bin/env node
// CODE TO RUN ON RASPBERRY PI SIDE
const dgram = require('dgram');
const Request = require('request');
const getLocalIP4 = require('quick-local-ip').getLocalIP4;
const socket = dgram.createSocket({
type: 'udp4',
reuseAddr: true
});
socket.on('listening', function () {
const address = socket.address();
console.log('UDP socket listening on ' + address.address + ":" + address.port);
});
socket.on('message', (browserId, remote) => {
console.info(browserId.toString(), remote)
browserId = browserId.toString();
console.info(browserId)
if (!browserId.includes('start_')) return;
browserId = (browserId.split('start_').pop() || '');
if (!browserId.includes('end')) return;
browserId = (browserId.split('end').shift() || '');
if (!browserId.includes('-')) return;
browserId = (browserId.split('-')[0] || '');
if (!browserId) return;
const sendToCentralServer = {
browserId,
deviceIp: getLocalIP4()
}
console.info('sendToCentralServer', sendToCentralServer)
Request({
url: 'http://127.0.0.1:1338/retropie',
method: 'POST',
timeout: 1000 * 10,
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
json: sendToCentralServer
});
});
socket.bind('5353', '0.0.0.0');