From 60f2eb9fb3c4443fbc43d387e866f383f0f70d67 Mon Sep 17 00:00:00 2001 From: Rebecca Murphey Date: Thu, 7 Jun 2012 23:21:14 -0400 Subject: taking a stab at a presenter notes server --- slidenotes/index.js | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 slidenotes/index.js (limited to 'slidenotes/index.js') diff --git a/slidenotes/index.js b/slidenotes/index.js new file mode 100644 index 0000000..fb6baf8 --- /dev/null +++ b/slidenotes/index.js @@ -0,0 +1,41 @@ +var express = require('express'); +var fs = require('fs'); +var io = require('socket.io'); +var _ = require('underscore'); + +var app = express.createServer(); +var staticDir = express.static; + +io = io.listen(app); + +var opts = { + port : 1947, + baseDir : __dirname + '/../' +}; + +io.sockets.on('connection', function(socket) { + socket.on('slidechanged', function(slideData) { + socket.broadcast.emit('slidedata', slideData); + }); +}); + +app.configure(function() { + [ 'css', 'assets', 'js', 'lib' ].forEach(function(dir) { + app.use('/' + dir, staticDir(opts.baseDir + dir)); + }); +}); + +app.get("/", function(req, res) { + fs.createReadStream(opts.baseDir + '/index.html').pipe(res); +}); + +app.get("/_notes", function(req, res) { + fs.createReadStream(opts.baseDir + 'slidenotes/notes.html').pipe(res); +}); + +// Actually listen +app.listen(opts.port || null); + +console.log("Your slides are at http://localhost" + (opts.port ? (':' + opts.port) : '')); +console.log("Your notes are at http://localhost" + (opts.port ? (':' + opts.port) : '') + '/_notes'); +console.log("Advance through your slides and your speaker notes will advance automatically"); \ No newline at end of file -- cgit v1.2.3 From 939da8834e5c3cc53ff80ebe894502f4e2d6a193 Mon Sep 17 00:00:00 2001 From: Rebecca Murphey Date: Sun, 17 Jun 2012 18:45:00 -0400 Subject: have notes page only listen to one socket --- slidenotes/index.js | 13 ++++++++++--- slidenotes/notes.html | 24 ++++++++++++++---------- 2 files changed, 24 insertions(+), 13 deletions(-) (limited to 'slidenotes/index.js') diff --git a/slidenotes/index.js b/slidenotes/index.js index fb6baf8..d27847e 100644 --- a/slidenotes/index.js +++ b/slidenotes/index.js @@ -2,6 +2,7 @@ var express = require('express'); var fs = require('fs'); var io = require('socket.io'); var _ = require('underscore'); +var Mustache = require('mustache'); var app = express.createServer(); var staticDir = express.static; @@ -29,8 +30,14 @@ app.get("/", function(req, res) { fs.createReadStream(opts.baseDir + '/index.html').pipe(res); }); -app.get("/_notes", function(req, res) { - fs.createReadStream(opts.baseDir + 'slidenotes/notes.html').pipe(res); +app.get("/_notes/:socketId", function(req, res) { + + fs.readFile(opts.baseDir + 'slidenotes/notes.html', function(err, data) { + res.send(Mustache.to_html(data.toString(), { + socketId : req.params.socketId + })); + }); + // fs.createReadStream(opts.baseDir + 'slidenotes/notes.html').pipe(res); }); // Actually listen @@ -38,4 +45,4 @@ app.listen(opts.port || null); console.log("Your slides are at http://localhost" + (opts.port ? (':' + opts.port) : '')); console.log("Your notes are at http://localhost" + (opts.port ? (':' + opts.port) : '') + '/_notes'); -console.log("Advance through your slides and your speaker notes will advance automatically"); \ No newline at end of file +console.log("Advance through your slides and your speaker notes will advance automatically"); diff --git a/slidenotes/notes.html b/slidenotes/notes.html index ffcfdcb..4b95210 100644 --- a/slidenotes/notes.html +++ b/slidenotes/notes.html @@ -18,16 +18,16 @@ float: left; } - #slides { - width: 1280px; - height: 1024px; - border: 1px solid black; + #slides { + width: 1280px; + height: 1024px; + border: 1px solid black; -moz-transform: scale(0.5); -moz-transform-origin: 0 0; -o-transform: scale(0.5); -o-transform-origin: 0 0; -webkit-transform: scale(0.5); - -webkit-transform-origin: 0 0; + -webkit-transform-origin: 0 0; } #wrap-next-slide { @@ -37,16 +37,16 @@ margin: 0 0 0 50px; } - #next-slide { - width: 1280px; - height: 1024px; - border: 1px solid black; + #next-slide { + width: 1280px; + height: 1024px; + border: 1px solid black; -moz-transform: scale(0.25); -moz-transform-origin: 0 0; -o-transform: scale(0.25); -o-transform-origin: 0 0; -webkit-transform: scale(0.25); - -webkit-transform-origin: 0 0; + -webkit-transform-origin: 0 0; } @@ -65,12 +65,16 @@