This library provides an easy way to send events to a web browser (or any other client) over HTTP.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

il y a 8 ans
il y a 5 ans
il y a 8 ans
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. var http = require("http");
  2. var Eventer = require(".");
  3. var fs = require("fs");
  4. var html =
  5. "<!DOCTYPE html>"+
  6. "<html>"+
  7. "<head>"+
  8. "<title>WebEvents</title>"+
  9. "</head>"+
  10. "<body>"+
  11. "<div "+
  12. "id='thing' "+
  13. "style='position: absolute; width: 30px; height: 30px; background: blue;'></div>"+
  14. "<script src='/client.js'></script>"+
  15. "<script>"+
  16. "var events = WebEvents();"+
  17. "events.on('move', function(evt) {"+
  18. "var elem = document.getElementById('thing');"+
  19. "elem.style.top = evt.y+'px';"+
  20. "elem.style.left = evt.x+'px';"+
  21. "});"+
  22. "</script>"+
  23. "</body>"+
  24. "</html>";
  25. var eventer = Eventer();
  26. http.createServer(function(req, res) {
  27. if (req.url == "/") {
  28. res.writeHead(200, {
  29. "Content-Type": "text/html",
  30. });
  31. res.end(html);
  32. } else if (req.url == "/client.js") {
  33. fs.createReadStream("client.js")
  34. .pipe(res)
  35. .on("error", err => res.end(err.toString()));
  36. } else if (req.url.indexOf("/webevents") === 0) {
  37. eventer.handle(req, res);
  38. }
  39. }).listen(8080);
  40. // Just keep track of some coordinates to send to the client as events
  41. var x = 0;
  42. var y = 0;
  43. var vx = 30;
  44. var vy = 30;
  45. setInterval(() => {
  46. if (x < 0)
  47. vx = Math.abs(vx);
  48. else if (x > 1000)
  49. vx = -Math.abs(vx);
  50. if (y < 0)
  51. vy = Math.abs(vy);
  52. else if (y > 600)
  53. vy = -Math.abs(vy);
  54. x += vx;
  55. y += vy;
  56. eventer.emit("move", { x: x, y: y });
  57. }, 100);