LuSrackhall / KeyTone

https://keytone.xuanhall.com
GNU General Public License v3.0
1 stars 0 forks source link

引入sse, 先粗暴的引入, 并在后续迭代中逐渐的完善设计 #19

Open LuSrackhall opened 2 months ago

LuSrackhall commented 2 months ago

在websocket和sse中, 最终还是选择使用sse。

LuSrackhall commented 2 months ago

目前只是通过sse配合viper文件监听回调, 完成了从sdk到frontend<前端>ui的闭环。

而frontend<前端>electron中, 还在使用轮询, 并没有引入sse的接收以形成闭环。

因此后续有空了, 需要在electron中, 接收sdk的sse消息, 以代替现有的轮询机制。

至于现有的开启时刻递归轮询机制<比如是否开启时隐藏窗口的机制>, 不在此范围内, 优化它需引入ipc调用或直接的用nodejs读取配置文件中的对应值。

其实我还想尝试下 webassembly, 。 也可以刚好趁此机会, 将go语言开发的api工程<如打包好的viper库用于访问配置文件>, 编译成webassembly, 放到electron中使用着玩。

据说webassembly中, 甚至可以通过go语言调用js代码, 甚至是获取dom元素(不过这也仅限于在浏览器环境中<如传统的 Go 运行环境中, 因为缺少 JavaScript 运行时环境而无法正常工作>)。

除了webassembly之外, 好像记得之前尝试过的wails框架中有个runtime.WindowExecJS()函数, 可以调用前端js中的函数。有空了打包过去玩玩, 试试调用js中的国际化函数做wails托盘图标显示。并尝试下wails框架能替代electron到什么程度。(当然是等待正式的wails的v3版本之后了, 毕竟wails2不支持托盘图标)