-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
58 lines (48 loc) · 1.38 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
/**
* Code adapted with permission from @noisyneuron https://github.com/noisyneuron/wekOsc
*/
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var osc = require('osc-min');
var dgram = require('dgram');
var remoteIp = '127.0.0.1';
var remotePort = 3333; // set wekinator to listen to port 3333
var udp = dgram.createSocket('udp4');
/**
* using localhost
* change this for your setup in this file as well as index.html
*/
server.listen(3000);
sendHeartbeat = function(arr) {
var buf;
var argsArr = [];
for (let i = 0; i < 34; i++) {
coord = arr[i];
argsArr.push({type: "float", value: coord || 0});
}
// console.log(argsArr);
try {
buf = osc.toBuffer({
address: "/wek/inputs",
args: argsArr
});
} catch (error) {
console.log(error, argsArr);
}
return udp.send(buf, 0, buf.length, remotePort, "localhost");
};
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
app.get('/:filename', function (req, res) {
res.sendFile(__dirname + '/' + req.params.filename);
});
io.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('singlePose', function (data) {
// console.log(data);
sendHeartbeat(data);
});
});
console.log("server listening on port " + 3000 + " and sending 34 OSC packets to port " + remotePort);