(function () { // Don't emit events from inside of notes windows if (window.location.search.match(/receiver/gi)) { return; } var multiplex = Reveal.getConfig().multiplex; var socket = io.connect(multiplex.url); function post() { var messageData = { state: Reveal.getState(), secret: multiplex.secret, socketId: multiplex.id }; socket.emit('multiplex-statechanged', messageData); } // post once the page is loaded, so the client follows also on "open URL". window.addEventListener('load', post); // Monitor events that trigger a change in state Reveal.addEventListener('slidechanged', post); Reveal.addEventListener('fragmentshown', post); Reveal.addEventListener('fragmenthidden', post); Reveal.addEventListener('overviewhidden', post); Reveal.addEventListener('overviewshown', post); Reveal.addEventListener('paused', post); Reveal.addEventListener('resumed', post); }());