chaosc-cosmdisplay/app.js

57 lines
1.7 KiB
JavaScript

var express = require('express')
, app = express()
, server = require('http').createServer(app)
, path = require('path')
, io = require('socket.io').listen(server)
, cosm = require('./cosm.js')
, osc = require('./osc.js');
var cosmStreams = [ 70632 ];
var cosmClient = new cosm(cosmStreams, 'orKBBdLAKuKJU-RxqmZpZB6q0baSAKxBTVhKdjhUNkdyVT0g');
var oscClient = new osc('localhost', 8000);
app.configure(function () {
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function () {
app.use(express.errorHandler());
app.locals.pretty = true;
});
app.get("/", function(req, res) {
res.render('index', { title: 'COSM display', streams: cosmStreams });
});
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log("bla" + data);
});
cosmClient.getStreams(cosmStreams, function(object) {
socket.emit('gotstream', object);
});
});
server.listen(app.get('port'), function () {
console.log("Express server listening on port " + app.get('port'));
});
// this event is send by cosm client when new data arrives (just when values changes)
cosmClient.on('changedvalue', function(object) {
console.log("changedvalue: " + JSON.stringify(object));
oscClient.send('/cosm/' + object.stream + "/" + object.displayname, object.value);
io.sockets.emit('changedvalue', object);
});