渲染进程之间是否无法直接通信?

来源:2-3 进程间通信

zozo_zuo

2019-08-03

老师,课程里讲的是主进程和渲染进程之间的通信,那么如果想要渲染进程之间的通信,是否必须经过主进程的转发才可以?
就是renderer process 1 -> main process -> renderer process 2(renderer process 1 发给main process ,由main process再发给renderer process 2)
而不能 renderer process 1 -> renderer process 2(renderer process 1直接发消息给renderer process 2)

写回答

1回答

张轩

2019-08-03

你的理解是对的 是需要经过 mainProcess 的转发 请看这个帖子 https://github.com/electron/electron/issues/7193

在 ipcRender 上有一个 sendto 方法,https://electronjs.org/docs/api/ipc-renderer 

ipcRenderer.sendTo(webContentsId, channel, [, arg1][, arg2][, ...])

可以直接向另外一个 webContents 发送消息,但是需要知道 webContents 的 ID,这个 ID 其实还是需要到 main process 的,所以其实还是要路过 main process

1
1
zozo_zuo
非常感谢!
2019-08-03
共1条回复

Electron开发仿网易云音乐播放器

站内首门Electron课程,让你更专注应用的核心开发

3428 学习 · 159 问题

查看课程