有没有可能,把 Electron 软件“反向代理”成网页?

2023-04-09 02:45:36 +08:00
 butanediol2d

这里是站在普通用户的角度说的,对于有能力的开发者当然可以选择直接“移植”。

相当于把 Electron 软件变成可以 selfhost 的,前后端分离的软件。感觉像 Obsidian 、Icalingua++ 等这些软件可以受益很多。

如果可行的话,能预料到部分应用或者功能会出问题,不过总体上能用就好。

2704 次点击
所在节点    奇思妙想
13 条回复
ochatokori
2023-04-09 03:44:49 +08:00
你要找的是不是网页版 vscode
metalvest
2023-04-09 11:28:26 +08:00
站在普通用户的角度,最多到原开发者那里去提要求,提的人多了可能就会移植
lower
2023-04-09 11:29:19 +08:00
这种功能(在浏览器访问原生应用)和实现技术已经很成熟了吧。。。
最极致的都是网页端远程桌面功能

不知道 op 是不是说的这种功能?
hazardous
2023-04-09 11:58:05 +08:00
我觉得反了。最开始用 HTML 写本地软件界面应该就是这种,在本地起个服务然后与网页通过接口交互,界面分裂感太重,不懂技术的用户搞不懂是个软件还是个网页,很不正规的感觉。然后 electron 才把这俩合成一个,看起来是一个完整的软件了。
oldshensheep
2023-04-09 12:17:42 +08:00
是一个不错的想法,比如 Icalingua++如果变成运行在浏览器中的应用,就相当于是 Web 版的 QQ 了,不用下载 Electron 这个破东西,而且打开浏览器就可以访问。
如果更改源程序实现上述功能,技术上肯定是可行的,但是如果开发一个代理软件,可以无感知的代理 Electron 应用那就更方便了。

代理程序把 Electron 应用代理成一个前后端分离的程序,类似于 vscode 。
oldshensheep
2023-04-09 12:23:07 +08:00
@hazardous 但是这种应用可以部署到服务器上,然后通过自己的浏览器访问,甚至可以卖个服务。
butanediol2d
2023-04-09 19:44:19 +08:00
@ochatokori #1 不是所有 Electron 软件都像 VS Code 这样有网页版可以自己部署,而且硬要说的话,VS Code 也不行,能部署的 Code Server 跟 VS Code 也不太一样。

@lower #3 是这个意思,但是只是网页前端的话,远程桌面开销太大,如果能只传输网页内容,渲染也是在客户端完成,那体验就很好多了。

@oldshensheep #5 是的,就是这个意思。我最开始的想法就是部署 Icalingua++,不仅可以多端访问,而且可以通过自己部署数据库把所有的聊天记录保存下来。
kkocdko
2023-04-09 21:26:33 +08:00
我目前就在本机上使用 vscode web server (官方的 code server ),很好用。但我也同意 4 楼的看法,很大一部分用户根本没有基础的计算机常识,用户会不断地反馈,不断地吵闹,并声称“网页很卡”。当你使用 electron 包一层之后,一切都清净了。我只想说这些用户值得他们所受的苦难。

我也希望有楼主所说的这样的方案出现,看样子代理是一个不错的路径。之前大家想的是弄出一个共享 electron runtime ,但显然需要主动适配。要是有一个第三方的,无需适配的代理形式的方案,应该会很不错,但是技术难度也需要考虑一下。
cond0r
2023-04-10 09:39:58 +08:00
感觉理论是可行,修改 electron 变成打开一个 webserver,然后重新封装所有的 api 用 websocket 之类的和后端进行通讯执行
shakukansp
2023-04-10 10:36:54 +08:00
想的有点多,反代怎么解决使用 fs 相关 api 的问题?
butanediol2d
2023-04-10 12:25:11 +08:00
@shakukansp 主题正文有写,不期待所有功能都正常。
ixixi
2023-04-11 09:49:02 +08:00
换个思路 如果用 类似于 手机投屏的方案呢 ?
butanediol2d
2023-04-11 12:29:12 +08:00
@ixixi #12 传输视频流的开销太大了,无论是对服务端还是客户端,体验也远不如仅代理网页。如果用反向代理的方式,体验应该与直接浏览网页差别不大,但投屏、远程桌面这种差距就很大了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/930915

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX