Miigon 现在有许多桌面应用是用 Electron 构建的,Electron 的架构是渲染和逻辑进程分离,使用进程间通信进行渲染和逻辑进程通信。 http://man.hubwiz.com/docset/electron.docset/Contents/Resources/Documents/docs/tutorial/application-architecture.html 有没有可能让这个进程间通信跑到网络上(RPC),也就是让渲染线程和逻辑线程在不同的主机上运行,甚至让用户的浏览器来作为渲染线程,而专门的服务器作为逻辑线程。 我想到的想法是,这样可以开发一个Electron桌面软件,同时不修改代码即可提供云上版本(浏览器负责渲染,服务器负责逻辑/存储),而且拥有和桌面软件几乎同等强大的功能。 甚至把逻辑线程容器化,可以将一些现有的软件改造成SaaS服务?比如VSCode之类。这样就可以在浏览器里运行各种Electron应用了。 如果有方法通过注入之类的方式(越来越危了hhh),让已经发布的electron的逻辑线程和一个代理进行IPC通信,代理再把这些IPC call通过网络转发到目标机器上的渲染线程,考虑到现在electron应用之多,这也是一台非常可用的“云电脑”了。
0x0001 刚突然想起 CSAPP 提到的存储器金字塔模型: IPC 处于 Memory 层面的互相调用,这种可靠性和速度都有所保障。 当我们走到磁盘乃至于网络的层面,不确定性会很大,感觉就可能很难满足进程间通信的要求,而且需要考虑请求失败的状态处理,而本地进程间通信不用太过于纠结这个🤔 内存与网络之间隔了一层磁盘的速度与可靠性,所以这里的问题,或许可以先关注: Electron 应用通过磁盘实现进程间通信渲染的可行性?