当前播放: 18 | 傀儡端实现(二):如何接收&响应指令?
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:Electron基础篇 (12讲)
01 | 课程介绍
免费
02 | 内容综述:学完这门课程你能得到什么?
免费
03 | Electron介绍:为什么Electron这么火?
免费
04 | 揭秘Electron架构原理:Chromium + Node.js是如何一起工作?
免费
05 | 桌面端技术选型:如何选择合适的桌面端技术?
06 | Electron开发准备:环境搭建及前期准备
07 | 第一个Electron应用:开发一个简单版的番茄钟(上)
08 | 第一个Electron应用:开发一个简单版的番茄钟(下)
09 | 与Web开发不同(一):主进程与渲染进程
10 | 与Web开发不同(二):进程间通信
11 | 与Web开发不同(三):Native能力及原生GUI
12 | 与Web开发不同(四): 释放前端想象力,基于Electron能做什么?
第二章:实战篇 - 远程控制软件 (13讲)
13 | 实战项目综述:整体需求分析
14 | 设计思路:做远程控制有几步?
15 | 项目架构与基础业务:Electron 与 React 框架结合
16 | 主页面基础业务:Real World IPC
17 | 傀儡端实现(一):基于Electron能力捕获桌面视频流
18 | 傀儡端实现(二):如何接收&响应指令?
19 | 傀儡端实现(三):基于WebRTC传输视频流(上)
20 | 傀儡端实现(四):基于WebRTC传输视频流(下)
21 | 信令服务:如何连接两端(上)
22 | 信令服务:如何连接两端(下)
23 | 指令传输实现:如何建立数据传输?
24 | 项目完善与总结(上):App特性
25 | 项目完善与总结(下):原生GUI
第三章:Electron 工程篇 (10讲)
26 | Electron 应用打包:从HTML到安装包
27 | Electron 应用更新(一):软件更新的痛点
28 | Electron 应用更新(二):线上项目如何更新?
29 | Electron 质量监控:桌面端的质量抓手是什么?
30 | 使用原生能力:如何集成C++能力?
31 | Electron 自动化测试:如何编写端到端测试?
32 | Electron体验优化:如何优化白屏问题?
33 | Electron客户端的安全:从XSS到RCE
34 | Electron bad parts:辩证看待Electron技术
35 | 结束语
18 | 傀儡端实现(二):如何接收&响应指令?

18 | 傀儡端实现(二):如何接收&响应指令?

邓耀龙
美团高级前端工程师
35讲 约400分钟1960
单独订阅¥99
2人成团¥79
本节摘要

你好,我是邓耀龙。

2020 年新年即将到来,春节期间(2020 年 1 月 30 日)我们的课程将会停止更新一次,节后(2020 年 2 月 6 日)恢复更新。这里为末推荐一些自学资料,你可以自行学习。

最后预祝你新春快乐,学有所成。

课件和 Demo 地址
https://github.com/geektime-geekbang/geektime-electron

展开
登录 后留言

精选留言(9)

  • charles龙仔饭
    老师electron如何实现缓存文件啊,比如我想在客户端缓存pdf文件 ppt文件 视频文件 图片等等,这个用electron如何实现呢?最近工作上有这部分的需求,谢谢老师。

    作者回复: 缓存机制的话,Electron只有跟Chrome一样的。但具体你这个缓存的产品形态要做些什么呢?最简单的一个方法就是直接把文件通过node下载下来,客户端加载时候先判断本地有没有,有的就加载本地文件。

    2020-02-05
    3
  • 瑞泉
    老师,nodejs有没有远程文件目录同步镜像的类库或组件呀,需要开发一个把本地服务器中更新的目录实时同步到远程的另一台服务器上,计划在本地服务器上用Electron编写配置界面,用nodejs实现目录监控和与远程服务器进行传输,我对nodejs不熟望老师给些指导,十分感谢

    作者回复: 如果你是希望做一个文件存储的服务,可以看一下https://github.com/expressjs/multer
    如果是做同步,比如类似rsync,可以考虑用https://github.com/mattijs/node-rsync

    2020-02-01
    1
  • a Zhu
    这个时候,还是在家学习好!

    作者回复: 待在家里学习,是对疫情最好的帮助~

    2020-01-26
    1
  • 鹦鹉
    踩坑: 在 macos 下遇到确认代码无误但 robotjs 无法控制的情况, 需要在 Preferences>Security & Privacy>Accessibility 中将终端程序加入列表才可以使控制生效.

    作者回复: 👍对的,需要授权。

    2020-01-26
    1
  • 阿阳
    请教老师和各位同学一个问题:
    使用electron-rebuild重新编译robotjs,发现如下报错:
    E:\03.electron\remote-control>npx electron-rebuild
    × Rebuild Failed

    An unhandled error occurred inside electron-rebuild
    gyp info it worked if it ends with ok
    gyp info using node-gyp@6.1.0
    gyp info using node@12.16.1 | win32 | x64
    gyp info find Python using Python version 2.7.3 found at "D:\Program Files (x86)\Python27\python.exe"
    gyp http GET https://www.electronjs.org/headers/v8.1.1/node-v8.1.1-headers.tar.gz
    gyp WARN install got an error, rolling back install
    gyp ERR! configure error
    gyp ERR! stack Error: read ECONNRESET
    gyp ERR! stack at TLSWrap.onStreamRead (internal/stream_base_commons.js:205:27)
    gyp ERR! System Windows_NT 10.0.18362
    gyp ERR! command "D:\\Program Files\\nodejs\\node.exe" "E:\\03.electron\\remote-control\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--target=8.1.1" "--arch=x64" "--dist-url=https://www.electronjs.org/headers" "--build-from-source"
    gyp ERR! cwd E:\03.electron\remote-control\node_modules\robotjs
    gyp ERR! node -v v12.16.1
    gyp ERR! node-gyp -v v6.1.0
    gyp ERR! not ok

    看报错原因是 https://www.electronjs.org/headers/v8.1.1/node-v8.1.1-headers.tar.gz 这个头文件下载不下来。
    尝试了很多种办法,就是卡在这个点上。用另一种方法,也是一个文件没法下载。已经卡在这里了,请教老师有没有好的解决方法。
    2020-03-13
  • 阿阳
    喜欢老师讲的笛卡尔的故事。

    作者回复: 数学也是可以很浪漫的~

    2020-03-13
  • zc
    老师,在通过window.screen.width,获取屏幕的宽高时候,有些电脑分辨率设置是1920*1080,但是电脑有个默认设置缩放布局125%,这样就会导致获取的数据不正确,鼠标的点击位置会有偏差。
    问: 能否获取到缩放的这个值呢?
    图片链接:https://i.postimg.cc/J0MnGJDk/123.png

    作者回复: 通过electron的screen模块的getPrimaryDisplay()你可以拿到display对象,里面有个scaleFactor,可以试试。

    2020-02-08
  • 瑞泉
    老师你演示的代码运行会打印
    handle mouse {
        clientX:754,
        clientY:142
        screen:{height:900,width:1440},
        video:{height:658,width:1000}
    }
    以及输入键盘值会在$后显示字符,我看老师的视频中代码没有输出语句,是怎么做到的?
    我是在win10中使用cmder进行命令行方式运行的,在代码中加入的console.log(data)可以打印出来,但是大写字符怎么打印出来的?请老师帮忙指教

    作者回复: 观察得很细致👍,中间我加了一段console.log,大写字符是我特意加上去标志的,不影响的,在第三章我会讲怎么打日志。

    2020-01-31
  • 美美
    厉害了

    作者回复: 多谢~

    2020-01-30
收起评论
看过的人还看
TypeScript开发实战

梁宵  搜狗营销事业部高级架构师

47讲 | 3535 人已学习

拼团 ¥99 原价 ¥129
Node.js开发实战

杨浩  腾讯高级工程师

57讲 | 4637 人已学习

拼团 ¥99 原价 ¥129
JavaScript核心原理解析

周爱民  《JavaScript语言精髓与编程实践》作者,南潮科技(Ruff)首席架构师

28讲 | 4277 人已学习

拼团 ¥55 原价 ¥68
重学前端

程劭非(winter)  前手机淘宝前端负责人

58讲 | 34215 人已学习

拼团 ¥79 原价 ¥99