have notes page only listen to one socket
authorRebecca Murphey <rmurphey@gmail.com>
Sun, 17 Jun 2012 22:45:00 +0000 (18:45 -0400)
committerRebecca Murphey <rmurphey@gmail.com>
Sun, 17 Jun 2012 22:45:00 +0000 (18:45 -0400)
slidenotes/index.js
slidenotes/notes.html

index fb6baf85c582260e2685568c735806d009270af0..d27847e845efe203181c0f9db445e537327f45e1 100644 (file)
@@ -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");
index ffcfdcbc26b3632be90e5e837261da9a39303120..4b9521086cada8fea082c64be85c38d82053695d 100644 (file)
         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 {
         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;
       }
     </style>
   </head>
     <script src="socket.io/socket.io.js"></script>
 
     <script>
+    var socketId = '{{socketId}}';
     var socket = io.connect('http://localhost:1947');
     var notes = document.getElementById('notes');
     var slides = document.getElementById('slides');
     var nextSlide = document.getElementById('next-slide');
 
     socket.on('slidedata', function(data) {
+      // ignore data from sockets that aren't ours
+      if (data.socketId !== socketId) { return; }
+
       notes.innerHTML = data.notes;
       slides.contentWindow.Reveal.navigateTo(data.indexh, data.indexv);
       nextSlide.contentWindow.Reveal.navigateTo(data.nextindexh, data.nextindexv);