c#客户端要支持期货和永续期货的模块,出了三个方案:
一、客户端自个儿完成,但效果不太好,web 还不能复用,mac 也不能用
二、web 完成,客户端使用类似内部浏览器的工具来加载展示,但效果就是卡
三、同事选型了 electron,看官方可以跨平台用,似乎比较合适,但都没使用过,有风险。
求支持,兄弟们
1
gaocc OP 使用过的给个建议,感激不尽,先给个你个爱心
|
2
morethansean 2019-04-02 09:53:56 +08:00 via iPhone
直接用 Electron 呗。
|
3
ijse 2019-04-02 09:54:56 +08:00
electron 方案不错的,只是打包体积有点大( 40+MB ),驾驭好了之后,三个平台都能一套代码搞定; Web 代码一定要打包到本地加载,只要用户电脑不是很差,优化做得到位,使用起来体验跟 Native 的客户端无异的;一些密集运算也可以写 c++ addon 编译解决; electron-build 工具更是可以直接提供软件升级功能,是不错的方案。
使用内部浏览器,页面可能会有些兼容问题,但如果客户端用 cef 会好些,只是打包体积也会很大,并且页面与端交互可能也会有问题。 当然,最主要的还是要看团队 |
5
grewer 2019-04-02 10:02:30 +08:00
之前我找的时候 没有好的解决方案
还有我用的时候遇到了些小 bug |
6
zw1234 2019-04-02 10:02:56 +08:00
electron 基于 Chromium 的,和 chrome 一样占用内存比较高...
|
7
murmur 2019-04-02 10:08:26 +08:00
目前看正经的 electron app,叫的出名优化的好的只有 vscode
奇遇的都是 cef 的爆改,拖家带口不知道带了几百个 dll |
8
zzh1224 2019-04-02 10:10:13 +08:00
应该挺成熟了吧,反正我用的时候也没啥大坑要踩,就是打包出来挺大的,就一普通的单页面应用
|
9
nieyujiang 2019-04-02 10:12:48 +08:00 via iPhone
反正 sharp 这个库我编译 Windows 版本就没成功过,electron 里面用的
|
11
murmur 2019-04-02 10:19:23 +08:00
@vampuke 光看 electron 没用 你要数一下除了 electron 之外还有多少 dll 才能判断 electron 是核心还就是 UI
尤其是微信这种带了个 40m 的 qbcore.dll 又是什么爆改版 |
12
caryqy 2019-04-02 10:20:46 +08:00
虾米音乐 mac 端就是的 beggar vip 事件
|
13
gaocc OP |
14
murmur 2019-04-02 10:25:20 +08:00
@gaocc
问题其实就 2 个 1、太大,相比,net 把锅都给了运行库,electron 打包出来的东西都得三四十 m,包括和 chrome 一样吃内存,另外一个可能是问题也不是问题的就是 electron 不支持 xp,但是 node-webkit 的老版本是支持的 2、代码几乎跟没混淆一样 至于界面、逻辑都不是问题 |
16
linchengzzz 2019-04-02 10:32:18 +08:00
主要是吃内存 , 电脑配置好 应该没问题
|
17
932357832 2019-04-02 10:32:23 +08:00
和 vue 一起用的话,可以用这个 electron-vue -> https://simulatedgreg.gitbooks.io/electron-vue/content/cn/ ,搭配 electron 官方文档使用就可以了
但是这个已经有段时间没有更新了,里面的 electron 版本也不是最新的,最好自己更新到新版本。 |
18
vampuke 2019-04-02 10:33:15 +08:00
@gaocc 我的理解是 electron 在打包的过程中就像打包了一个 chromium 的内核进你的软件,替你解决兼容问题,vue 的代码就正常写,写完再用 electron 打包,运行的效果和你直接在浏览器里打开 vue 项目是没有太大区别的,至于#14 说的混淆的问题,我的做法是混淆完再打包,这样 electron 解包出来的也只是混淆后的内容
|
19
zqx 2019-04-02 10:34:06 +08:00 via Android
直接体验一下 vs code 看看好不好用就行了
|
20
meishigan321 2019-04-02 10:36:37 +08:00 via Android
期待出个安卓版!安卓版的 ssr 都 n 年不更新了。
|
21
DOLLOR 2019-04-02 10:42:29 +08:00 via Android
就是打包体积、运行内存大,其余都不是太大的问题。如果有 web 开发经验,差不多可以无缝切换过来。
要注意发布代码要混淆,免得把注释里见不得人的信息被好事者拿去搞新闻😅 |
22
gaocc OP |
23
jswh 2019-04-02 10:46:08 +08:00
打包比较大,其他都挺好的
|
24
Mzs 2019-04-02 10:49:11 +08:00
阿里云的 OSS 客户端就是 electron 写的
我公司内部的一个工具也用 electron 写的 主要是做一些 http 请求和 adb 命令 蛮好的 |
27
aleko 2019-04-02 11:21:02 +08:00
还好 没什么特别大的坑 小坑一般都是自己用的姿势不正确 但如果你想要魔改就不确定了...
|
29
encro 2019-04-02 13:52:16 +08:00
web 使用卡,
electron 是也是 web 的,难道就不卡了? |
30
encro 2019-04-02 13:55:04 +08:00
首先需要明白是为什么卡?
比如是通信延迟,还是渲染 dom 太多。 electron 只是在 web 上加了一个壳,并不一定能解决卡的问题。 |
31
TomVista 2019-04-02 14:08:06 +08:00
很不错的技术生态,就是 electron+hello word =40m 有点尴尬
|
32
joesonw 2019-04-02 17:43:40 +08:00
electron 唯一的问题就是不支持 xp. 支持 xp 的话老老实实用 nw.js
|
34
hws8033856 2019-04-02 18:20:01 +08:00
@encro 同意,LZ 还是先弄清楚为什么卡,例如我以前的一个项目,用的 WPF 外框+cefsharp 插件的 WPF 版,网页动画效果因为 WPF 的 UI 渲染机制导致看起来不流畅,结果换用 cefsharp 的 winform 版就解决问题了
|
35
gaocc OP demo 了一个智能行情监控的界面,遇到了 websocket 连接不上的坑,具体报错如下:
Uncaught Error: [Vuex Electron] Please, don't use direct commit's, use dispatch instead of this. at Store.store.commit (D:\work\GS_project\gsboms\trunk\code\client\electron-vue\electron-gs\node_modules\vuex-electron\dist\shared-mutations.js:1:1992) at _class.passToStore (webpack-internal:///./src/renderer/plugins/ws/observer.js:148:62) at WebSocket._this2.webSocket.(anonymous function) (webpack-internal:///./src/renderer/plugins/ws/observer.js:94:20) 有踩过的吗,百度没找到什么有效资料。 @hws8033856 @TomVista @Mzs @vampuke @932357832 |
36
gaocc OP 代码逻辑和 web 的一样,浏览器没毛病正常运行
|
38
gaocc OP 这个刚踩掉了。注释掉了 store 目录下 index.js 的 createSharedMutations 插件。先能连接 websocket 了,数据也有了,但是 F5 刷新没重连,有点蛋疼,控制台报错:
[26292:0402/202200.999:ERROR:CONSOLE(7574)] "Extension server error: Operation failed: : has no execution context", source: chrome-devtools://devtools/bundled/inspector.js (7574) 这玩意,看了一脸懵逼。明个再来,今天休息了。 @TomVista |
39
pengwen 2019-04-02 21:45:42 +08:00 via Android
@ijse 刚刚接触 electron,我是直接执行 electron-packager .
请问下,有什么技巧可以降低包的大小呢 |
40
TsaiKoga 2019-04-03 10:10:01 +08:00
我前阵子也玩了 electron,可以参考我这个项目 https://github.com/TsaiKoga/it-tools
|