Electron 开发实战
邓耀龙
美团高级前端工程师
21224 人已学习
新⼈⾸单¥59
课程目录
已完结/共 35 讲
Electron 开发实战
登录|注册
留言
10
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 10 | 与Web开发不同(二):进程间通信
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
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 | 实战项目综述:整体需求分析
14 | 设计思路:做远程控制有几步?
15 | 项目架构与基础业务:Electron 与 React 框架结合
16 | 主页面基础业务:Real World IPC
17 | 傀儡端实现(一):基于Electron能力捕获桌面视频流
18 | 傀儡端实现(二):如何接收&响应指令?
19 | 傀儡端实现(三):基于WebRTC传输视频流(上)
20 | 傀儡端实现(四):基于WebRTC传输视频流(下)
21 | 信令服务:如何连接两端(上)
23 | 指令传输实现:如何建立数据传输?
22 | 信令服务:如何连接两端(下)
24 | 项目完善与总结(上):App特性
25 | 项目完善与总结(下):原生GUI
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 | 结课测试&结束语
本节摘要
登录 后留言

全部留言(10)

  • 最新
  • 精选
Elliot
老师,可以顺便讲讲浏览器内部 ipc 怎么实现的吗?对比学习效果比较好

作者回复: 其实就是管道,无论是chrome还是node 子进程ipc都是管道

2020-04-06
1
元气满满
从主进程到渲染进程的通讯,看到了代码里的handleIPC 这里是用 setTimeout 设置了500ms的延迟,这是为何?(试了下,如果不放在 setTimeout 里,这里的通信是不成功的,所以这是为了确保win load 的页面就绪是么?)没有事件之类的可以监听win的加载状态么?毕竟不同页面的加载时长不同,用 setTimeout 没法确保页面是真的加载好了的吧?

作者回复: 嗯嗯,我只是为了方便演示。一般如果主进程想推IPC给渲染进程并且保证可用,还是建议渲染进程主动发起一个初始化成功IPC,之后主进程再发

2020-01-26
1
忆民
老师你好,我使用electron嵌入一个外部的网页,外部的网页里面打开一个新的页面,新的页面会不受electron的控制,这个有办法解决吗?希望老师指点。

作者回复: 最好就是不要在内部打开页面,如果想控制的话,可以通过webContents的静态方法拿到页面,进行操作

2020-07-22
tiger.w
老师,对于一些比较消耗CPU的任务,是否不应该提交到主进程里去处理,有没有一些比较好的方案来处理?主进程里是否应该只处理UI相关的请求,非UI相关的请求考虑C++插件或启动子进程来处理?

作者回复: 是的,用内存换CPU.

2020-06-16
皮特尔
ipcMain 和 ipcRenderer 都是 EventEmitter 实例,这是否意味着:可以使用自定义的 EventEmitter 实例来实现类似的功能?

作者回复: 不是的,他本质上是基于原生的跨进程通信做封装。web传统的EE其实是单进程内通信。

2020-05-25
忆民
老师有一个问题,这种进程间实现的底层技术是什么?是命名管道,websocket还是什么技术? 如果有个C++或者其他exe,怎么和electron的主进程通信比较好?是否可以直接使用什么方法直接和ipcMain进行通信?

作者回复: 底层的IPC怎么实现的我还没仔细看过。但是两个应用间通信的话,用protocol,或者大家都起一个端口,应该是比较可行的操作。

2020-02-14
瑞泉
老师,setTimeout(handleIPC, 500),我在renderer.js中无法获取ipc;我按照网上的改成如下: win.webContents.on('did-finish-load', function() { win.webContents.send('do1', 'abc') }) renderer.js就可以接收到了,是什么原因?我后来把setTimeout给成5000也可以了,难道是因为我的页面没有加载成功?

作者回复: 嗯嗯,页面没加载,ipcRender注册好监听。

2020-01-29
瑞泉
老师有空把远程控制软件的代码上传到github上,另外我建议老师能把视频的字幕整理成文档,你说的(字幕)比现在的PDF详细多了,便于我们学习。另外还有个问题,我在win上运行electron为啥默认有菜单栏,怎么去掉呀?

作者回复: 代码会随着课程更新上传的,不然理解会比较难。字幕文档我跟策划反馈一下。

2020-01-28
kevinInsight
老师,remote 好像在14.0.0版本之后被废弃了?请问14.0.0之后如何实现呢?目前主流的electron版本是多少呢?
2022-10-28
凹凸曼
老师我在实际开发者使用web localStorage 每次只有第一次生效,然后关闭再次打包数据就会丢失,现在只能把数据本地持久化
2020-08-18
收起评论