telppa / ahkzmq

Autohotkey bindings for ZeroMQ
5 stars 1 forks source link

zeromq 集成到 ahk 的使用场景 #4

Open wyrover opened 1 year ago

wyrover commented 1 year ago
  1. zeromq 有大多数语言的包装,所以可以通过 zeromq 调用不同语言实现的服务。
  2. 推送是一个场景。
  3. ahk 作为自动化服务方,但是并不作为 zeromq 服务器端存在,因为大多数的 ahk 应用都在内网。所以可以通过 zeromq 双向调用暴露一个服务。应用层协议可以实现为双向 jsonrpc 调用。异步方式实现,server 端实现 router 模式,client 端实现 dealer 模式。
  4. ahk 作为上层界面,并不稳定,最好不要实现单进程应用。所以可以通过 zeromq 实现多进程应用。
  5. node python 都有打包工具。配合 ahk 和 zeromq 组合实现应用。关键服务可以放到服务器端实现。
  6. 不够安全的地方,libzmq 作为开源实现,函数容易被 hook。就算你实现了双向认证,那只是解决了网络层面。
  7. Autohotkey 也容易被 hook,导出原始脚本。
  8. ahk v1 是一个单线程应用,看一下源码,大量的全局变量实现。虽然你可以通过 api 函数 createthread 创建一个线程,但线程同步并不容易。使用临界区也不行,容易崩溃。要想稳定实现功能最好转到 C++/C 实现,然后将 ahk 回调函数指针注册到模块里。
  9. 如果你把 ahk 程序当做 zeromq 工作队列模型发布出去。那么你可以分布式计算,比如爬虫…………
telppa commented 1 year ago

当初封装的时候,最想实现的是把scite编辑器的事件啥的,通过它内置的插件语言lua转发给ahk,然后就可以用ahk给scite写插件了。 类似的还有sublime text。 不过都还没开始。