123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- var http = require("http");
- var Eventer = require(".");
- var fs = require("fs");
-
- var html =
- "<!DOCTYPE html>"+
- "<html>"+
- "<head>"+
- "<title>WebEvents</title>"+
- "</head>"+
- "<body>"+
- "<div "+
- "id='thing' "+
- "style='position: absolute; width: 30px; height: 30px; background: blue;'></div>"+
- "<script src='/client.js'></script>"+
- "<script>"+
- "var events = WebEvents();"+
- "events.on('move', function(evt) {"+
- "var elem = document.getElementById('thing');"+
- "elem.style.top = evt.y+'px';"+
- "elem.style.left = evt.x+'px';"+
- "});"+
- "</script>"+
- "</body>"+
- "</html>";
-
- var eventer = Eventer();
-
- http.createServer(function(req, res) {
- if (req.url == "/") {
- res.end(html);
- } else if (req.url == "/client.js") {
- fs.createReadStream("client.js")
- .pipe(res)
- .on("error", err => res.end(err.toString()));
- } else if (req.url.indexOf("/webevents") === 0) {
- eventer.handle(req, res);
- }
- }).listen(8080);
-
- // Just keep track of some coordinates to send to the client as events
- var x = 0;
- var y = 0;
- var vx = 30;
- var vy = 30;
- setInterval(() => {
- if (x < 0)
- vx = Math.abs(vx);
- else if (x > 1000)
- vx = -Math.abs(vx);
- if (y < 0)
- vy = Math.abs(vy);
- else if (y > 600)
- vy = -Math.abs(vy);
-
- x += vx;
- y += vy;
-
- eventer.emit("move", { x: x, y: y });
- }, 100);
|