添加Android自架版文档

This commit is contained in:
Easy 2022-03-30 18:19:46 +08:00
parent 6ed2d8d458
commit c1a3b746b7
4 changed files with 15 additions and 10 deletions

View File

@ -2,6 +2,8 @@ PushDeer是一个可以自行架设的无APP推送服务同时也为因为某
[🐙🐱 GitHub仓库](https://github.com/easychen/pushdeer) [🔮 中国大陆镜像仓库@Gitee](https://gitee.com/easychen/pushdeer)
> [🤖 Android自架版求开发者参与](doc/Android%E7%89%88self-hosted%E7%9A%84%E8%AE%BE%E8%AE%A1%E5%92%8C%E5%AE%9E%E7%8E%B0.md)
本项目已经实现的方案/端包括:
- 无APP方案

View File

@ -98,6 +98,7 @@ class PushDeerMessageController extends Controller
$result[] = make_post('http://mqtt/send', [
'key' => env('MQTT_API_KEY'),
'content' => $the_message['text'],
'payload' => json_encode($the_message),
'type' => $validated['type'] == 'image' ? 'bg_url' : 'text',
'topic' => $thekey,
], 3);

View File

@ -1,10 +1,16 @@
# 自架版当前状态
> 暂停开发,等待新开发者接手
由于之前负责Android版开发的同学忙于其他事情已退出开发目前Android版需要新的同学参与欢迎感兴趣的同学申请 easychen[A.T]gmail.com
# 问题
小米推送不再对个人开放自架系统的推送权限申请很麻烦。公开secret会对官方应用带来安全风险。
小米推送不再对个人开放,自架系统的推送权限申请很麻烦,而公开secret会对官方应用带来安全风险。
# 解决思路
采用websocket来实现自架版的推送。
采用websocket/MQTT来实现自架版的推送。
优点:
@ -16,14 +22,10 @@
# 实现方案
## 架构选型
优先采用MQTT协议因为PushDeer自架版Docker镜像本来就已经支持了MQTT Server 可参考[此文档]配置 (https://github.com/easychen/pushdeer/tree/main/iot#%E5%BC%80%E5%90%AFmqtt%E6%9C%8D%E5%8A%A1) ),因此只需要在客户端实现即可。
1. 暂定使用 socket.io V3 版本作为 websocket 的技术栈。
以下是UI原型
![](image/2022-03-30-18-14-05.png)
## 暂定流程
1. 在界面输入API endpoint时以endpoint MD5值为Key查询本地存储获取之前可能存在的 device token如不存在随机创建一个并写入到本地存储
1. 在注册设备时检测是否为自架模式如是则读取endpoint对应的device token。
1. 客户端以 device token 为 key 和服务器端的 socket 通信
1. API在推送Android类型的message时检测是API endpoint如果发现是自架host非*.pushdeer.com则将信息发送到 socket server 对应的channel上
Android实现需要将MQTT启动为服务并常驻后台可在顶栏显示一个常驻图标点击后进入应用。

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB