一. 简介
对于开发者来说,我们日常会收到非常多的自动提醒,例如短信,邮件,手机弹框,钉钉等。但是很多时间以及场景下,我们都不会太关心自己所不想关心的事情,我们只想处理一些自己定义的特殊通知。iPhone消息推送可靠不丢数据,实时性很好,非常轻量,并且利用简单的http请求给自己的手机发推送。
针对于隐私保护,如果你的数据特别敏感,请将Bark部署到私人服务器。所有的数据将只在 你的手机、你的服务器、Apple推送服务器之间传输。
Github项目地址:
- 服务端地址:bark-server
- 客户端源码:Bark App
二. 安装
2.1 安装barkserver
在自己服务器上配置好docker后,万物皆可docker。推荐使用docker-compose方式部署。
- Docker部署
docker run -dt --name bark -p 8080:8080 -v `pwd`/bark-data:/data finab/bark-server
- docker-compose部署
mkdir bark && cd bark
curl -sL https://git.io/JvSRl > docker-compose.yaml
docker-compose up -d
具体的docker-compose.yaml的内容如下:
version: '3.8'
services:
bark-server:
image: finab/bark-server
container_name: bark-server
restart: always
volumes:
- ./data:/data
ports:
- "8080:8080"
采用Ping方式来验证程序是否正常运行:
curl "http://127.0.0.1:8080/ping"
# {"code":200,"message":"pong","timestamp":1616194575}
2.2 bark ios app 安装
优先推荐使用客户端App Store地址进行安装: Bark IOS App
2.3 配置App
根据私有服务器配置nginx或者采用服务器的负载均衡,我是基于腾讯云的负载均衡进行公网暴露,并且使用了具体的域名进行了绑定,例如当前我的bark server的地址为:https://barkserver.wyatt.plus
打开App,在右上角配置自己的域名地址。注意,一个手机只能配置一个bark server服务器地址,并不是多个。
2.4 调试
可以发get或者post请求 ,请求成功会立即收到推送
URL 组成: 第一个部分是 key , 之后有三个匹配
/:key/:body
/:key/:title/:body
/:key/:category/:title/:body
title 推送标题 比 body 字号粗一点
body 推送内容 换行请使用换行符 '\n'
category 另外的功能占用的字段,还没开放 忽略就行
post 请求 参数名也是上面这些
2.5 更多细节
- Bark正在支持更多的页面参数,包括网页,自动复制,自动保存,自定义提示音等。这说明,这是一个还是很活跃的项目
- Bark Server也在提供更多的语言案例,这对于在程序中使用Bark提供了很多便利,更多的内容参考:API_V2
三. 调试运行
当我们使用get或者post请求访问url时,我们手机将收到如下的弹框提示。
当然,平台也提供了更多系统API给到开发者。例如:
- Healthz
curl "http://127.0.0.1:8080/healthz"
- Info
curl "http://127.0.0.1:8080/info"
四. 总结
关于提醒工具,存在于开发者的时时刻刻与方方面面,很多时候有些推送并非是我们所需要的。
我们只想关注于我们当前所想关注的。
我们人就像一个数据库,很多外在的通知希望查询我们数据。利用了“布隆过滤器”的机制,我们过滤掉的通知“一定不是我们想收到的”,但是没过滤的“大概率是我们需要的东西”。
高效的专注,不浪费时间于杂事。