Browse Source

have notes page only listen to one socket

Rebecca Murphey 12 years ago
parent
commit
939da8834e
2 changed files with 24 additions and 13 deletions
  1. 10 3
      slidenotes/index.js
  2. 14 10
      slidenotes/notes.html

+ 10 - 3
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");
+console.log("Advance through your slides and your speaker notes will advance automatically");

+ 14 - 10
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;
       }
     </style>
   </head>
@@ -65,12 +65,16 @@
     <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);