Pushoo-chan, 为开发者优化的优雅推送接口
初衷
问题1:多个push平台互不兼容,需要记住多个接口,使用困难
我日常喜欢用的推送接口:
- TG:消息可持久化,但国内节点无法直连,推送延迟巨大
- Server酱:付费,垃圾东西
- Bark/PushDeer等:推送速度快,但仅支持移动端
- QQ:方便,消息可持久化,但机器人配置复杂
- 微信:不方便,消息内容无法显示,但有时需要备用
问题2:多通道同时推送
为了确保消息送达,有时候则需要同时使用多种推送通道推送以避免推送失败。
但调研后,没有一家通知平台支持这种功能
问题3:部署难度
PushDeer、server酱等部署难度同样较大,有着许多冗余的鉴权部分
实现
- 推送:
- 找到了pushoo这个sdk,可以传入token这一个字段来同时支持多种通知渠道。
- 运行环境:
- 参考了,实现了多个starter,同时支持CFWorkers和node直接启动
- 尝试了这些框架:
- express:仅支持在node环境中使用
- Sunder:非常难用,文档没法看,且看起来年久失修
- itty-router:平台无关,完全不依赖node API,所以可以直接使用
- 学习了这些技术
- webpack
- browserify,用上了他的polyfill
更新230210 - 联动Apprise,支持barkv2
需要与Apprise联动,在Apprise支持的简单webhook通道里:
- ServerChan:仅支持官方API(只支持设置key)
- Bark:支持自己定义Host,但是并不支持自己定义URL
- 使用Cloudflare Worker转了一层,但是还是发不过去
- 打开verbose发现使用的BarkV2的POST /send接口
基于这些情况只好支持一下barkv2的接口,好在不麻烦