Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. let http = require("http");
  2. let net = require("net");
  3. let tcpport = process.env["TCPPORT"] ? parseInt(process.env["TCPPORT"]) : 8080;
  4. let httpport = process.env["HTTPPORT"] ? parseInt(process.env["HTTPPORT"]) : 8081;
  5. let html = `
  6. <!DOCTYPE html>
  7. <html>
  8. <head>
  9. <meta charset="utf-8">
  10. <title>XRemoteView</title>
  11. </head>
  12. <body>
  13. <img id="image" src="/image" style="object-fit: contain; height: 100vh; width: 100%;">
  14. <script>
  15. let img = document.getElementById("image");
  16. let url = img.src;
  17. setInterval(() => {
  18. let rand = Math.floor(Math.random() * 1000000);
  19. img.src = url + "?" + rand;
  20. }, 1000);
  21. </script>
  22. </body>
  23. </html>
  24. `;
  25. let imgdata = Buffer.alloc(0);
  26. net.createServer(conn => {
  27. console.log("Connection", conn.remoteAddress);
  28. received = Buffer.alloc(0);
  29. let hasLength = false;
  30. let expectedLen = 0;
  31. conn.on("data", data => {
  32. received = Buffer.concat([received, data]);
  33. while (true) {
  34. if (!hasLength && received.length >= 4) {
  35. expectedLen = received.readInt32LE(0);
  36. hasLength = true;
  37. }
  38. if (hasLength && received.length >= expectedLen + 4) {
  39. imgdata = received.slice(4, expectedLen + 4);
  40. received = received.slice(expectedLen + 4);
  41. hasLength = false;
  42. } else {
  43. break;
  44. }
  45. }
  46. });
  47. }).on("error", err => console.error(err)).listen(tcpport, "0.0.0.0");
  48. http.createServer((req, res) => {
  49. if (req.url.split("?")[0] == "/image") {
  50. res.writeHead(200, {
  51. "Content-Type": "image/jpeg",
  52. "Refresh": "1",
  53. });
  54. res.end(imgdata);
  55. } else {
  56. res.writeHead(200);
  57. res.end(html);
  58. }
  59. }).listen(httpport, "0.0.0.0");