有没有可能,把 Electron 软件“反向代理”成网页? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
butanediol2d
V2EX    奇思妙想

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

  •  
  •   butanediol2d 2023-04-09 02:45:36 +08:00 3487 次点击
    这是一个创建于 916 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    代理程序把 Electron 应用代理成一个前后端分离的程序,类似于 vscode 。
    oldshensheep
        6
    oldshensheep  
       2023-04-09 12:23:07 +08:00
    @hazardous 但是这种应用可以部署到服务器上,然后通过自己的浏览器访问,甚至可以卖个服务。
    butanediol2d
        7
    butanediol2d  
    OP
       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
        8
    kkocdko  
       2023-04-09 21:26:33 +08:00
    我目前就在本机上使用 vscode web server (官方的 code server ),很好用。但我也同意 4 楼的看法,很大一部分用户根本没有基础的计算机常识,用户会不断地反馈,不断地吵闹,并声称“网页很卡”。当你使用 electron 包一层之后,一切都清净了。我只想说这些用户值得他们所受的苦难。

    我也希望有楼主所说的这样的方案出现,看样子代理是一个不错的路径。之前大家想的是弄出一个共享 electron runtime ,但显然需要主动适配。要是有一个第三方的,无需适配的代理形式的方案,应该会很不错,但是技术难度也需要考虑一下。
    cond0r
        9
    cond0r  
       2023-04-10 09:39:58 +08:00
    感觉理论是可行,修改 electron 变成打开一个 webserver,然后重新封装所有的 api 用 websocket 之类的和后端进行通讯执行
    shakukansp
        10
    shakukansp  
       2023-04-10 10:36:54 +08:00
    想的有点多,反代怎么解决使用 fs 相关 api 的问题?
    butanediol2d
        11
    butanediol2d  
    OP
       2023-04-10 12:25:11 +08:00 via iPhone
    @shakukansp 主题正文有写,不期待所有功能都正常。
    ixixi
        12
    ixixi  
       2023-04-11 09:49:02 +08:00
    换个思路 如果用 类似于 手机投屏的方案呢 ?
    butanediol2d
        13
    butanediol2d  
    OP
       2023-04-11 12:29:12 +08:00
    @ixixi #12 传输视频流的开销太大了,无论是对服务端还是客户端,体验也远不如仅代理网页。如果用反向代理的方式,体验应该与直接浏览网页差别不大,但投屏、远程桌面这种差距就很大了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5221 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 09:22 PVG 17:22 LAX 02:22 JFK 05:22
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86