是否想做一个远程系统屏幕监控功能?这是个有意思的功能。

Node.JS可以实现,而且很方便。

目标效果:

在网页中实时查看系统屏幕内容。

实现原理:

1、用express实现服务器;

2、当访问来临时,截图并保存成文件,再传给访问者。

代码:

var express = require('express');var app = express();

//中间件,实现屏幕监控app.use(function(req,res,next){   var screenshot = require("desktop-screenshot"); 

   //屏幕截图   screenshot("screenshot.png", function(error, complete) {       console.log(req.url);      if(error)             console.log("Screenshot failed", error);          else            console.log("Screenshot succeeded");    }); 

   next();})

//内置中间件,静态文件访问app.use(express.static('./'))

//监听var server = app.listen(8000, function () {   var host = server.address().address   var port = server.address().port   console.log(host, port);})

//当访问根目录时触发app.get('/', function (req, res) {   res.send('Hello Jshaman.com');})

示例代码很简单,核心是使用了一个desktop-screenshot的三方控件,以实现屏幕截图。

截图的时机,是通过中间件的使用,达到有任意访问时即截图。

效果测试:

运行上面的代码,然后我们可以通过以下路径访问:

http://127.0.0.1:8000/screenshot.png

就可以看到截图如下:

只要刷新页面,就可以查看实时的屏幕动态。

一台电脑运行此程序,在另一台电脑访问:

很好,完美的屏幕监控。

手机上可以进行监控吗?当然可以。

更多本系列文章:

http://www.fairysoftware.com/node.js_in_practice.html

谢谢

Node.JS实战34:远程屏幕监控?可以的的更多相关文章

  1. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 记录日志

    沪江CCtalk视频地址:https://www.cctalk.com/v/15114923883523 log 日志中间件 最困难的事情就是认识自己. 在一个真实的项目中,开发只是整个投入的一小部分 ...

  2. 《Node.js实战(双色)》作者之一——吴中骅访谈录

  3. iKcamp团队制作|基于Koa2搭建Node.js实战项目教学(含视频)☞ 环境准备

    安装搭建项目的开发环境 视频地址:https://www.cctalk.com/v/15114357764004 文章 Koa 起手 - 环境准备 由于 koa2 已经开始使用 async/await ...

  4. Node.js 反序列化漏洞远程执行代码(CVE-2017-5941)

    2.1 摘要 2.1.1 漏洞介绍 漏洞名称: Exploiting Node.js deserialization bug for Remote Code Execution 漏洞CVE id: C ...

  5. Node.js实战(二)之HelloWorld示例

    经过前面的Node.js实战(一)之概述 想必你应该对Node.js的概念.应用场景.优缺点等有个大致的了解,同时你本地Windows或者Linux上已经准备好了Node.js环境. 下面我们来进入每 ...

  6. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 错误处理

    沪江CCtalk视频地址:https://www.cctalk.com/v/15114923887518 处理错误请求 爱能遮掩一切过错. 当我们在访问一个站点的时候,如果访问的地址不存在(404), ...

  7. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 解析JSON

    视频地址:https://www.cctalk.com/v/15114923886141 JSON 数据 我颠倒了整个世界,只为摆正你的倒影. 前面的文章中,我们已经完成了项目中常见的问题,比如 路由 ...

  8. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 处理静态资源

    视频地址:https://www.cctalk.com/v/15114923882788 处理静态资源 无非花开花落,静静. 指定静态资源目录 这里我们使用第三方中间件: koa-static 安装并 ...

  9. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 视图Nunjucks

    视频地址:https://www.cctalk.com/v/15114923888328 视图 Nunjucks 彩虹是上帝和人类立的约,上帝不会再用洪水灭人. 客户端和服务端之间相互通信,传递的数据 ...

随机推荐

  1. 《Java核心技术卷I》——第3章 Java的基本程序设计结构

    byte和short类型主要用于特定的应用场合,例如,底层的文件处理或者需要控制占用存储空间量的大数组. 十六进制数值有一个前缀0x(如0xCAFE),八进制有一个前缀0,如010对应八进制中的8.很 ...

  2. python socket--TCP解决粘包的方法

    1.为什么会出现粘包?? 让我们基于tcp先制作一个远程执行命令的程序(1:执行错误命令 2:执行ls 3:执行ifconfig) 注意注意注意: res=subprocess.Popen(cmd.d ...

  3. 移动端适配 rem

    前置知识: 物理像素(physical pixel,device pixel) 物理像素(设备像素),显示设备中一个最微小的物理部件.每个像素可以根据操作系统设置自己的颜色和亮度. 设备独立像素(de ...

  4. HTML与CSS中的定位个人分享

    定位 static - 默认值 (几乎不用,了解就可以) absolute - 绝对定位,不为元素预留空间,脱离文档流: 如果当前元素的父级元素是<body>元素的话 -> 是相对于 ...

  5. Installing MacOS to VirtualBox

    https://medium.com/@twister.mr/installing-macos-to-virtualbox-1fcc5cf22801

  6. MDC到日志管理配置

    MDC是什么? 第一次接触MDC,很蒙圈.看看导入的包import org.slf4j.Logger;import org.slf4j.LoggerFactory:import org.slf4j.M ...

  7. React Native 中吐司组件react-native-easy-toast

    https://github.com/crazycodeboy/react-native-easy-toast 用法: import Toast from 'react-native-easy-toa ...

  8. JDK1.8 LinkedList双向链表源码

    序言 LinkedList是一个双向链表 也就是说list中的每个元素,在存储自身值之外,还 额外存储了其前一个和后一个元素的地址,所以也就可以很方便地根据当前元素获取到其前后的元素 链表的尾部元素的 ...

  9. HDU 6614 AND Minimum Spanning

    Time limit 1000 ms Memory limit 131072 kB OS Windows 中文题意 给一张n个点的无向完全图(输入一个n就完事了),每个点标号为1~n,每条边的边权为它 ...

  10. PHP快速教程

    1.本文主要针对有C语言(或其他编程语言)基础的人快速学习PHP的,所以不会对一些基础知识作过多解释,比如“=”是赋值不是等于. 2.本文适合已学过一门编程语言,想要快速入门PHP的人. 3.基本上看 ...