PushMeServer是基于nodejs开发的消息服务器,支持安装、登录、管理push_key的功能,环境要求nodejs版本>=16。
Github:https://github.com/yafoo/pushme-server
Gitee:https://gitee.com/yafu/pushme-server
系统部署
请参考Git仓库README.md描述。
程序运行,需要两个端口3100和3010,加入你的服务器公网IP为0.0.0.0,则:
消息接口地址为:http://您服务器:3010
端口更改、域名绑定
如果您想使用其他端口,请在server.js文件内修改,同时您也可以通过nginx绑定自己的域名,通过域名访问。
version: '3.8'
services:
pushme-server:
image: yafoo/pushme-server:latest
container_name: pushme-server
ports:
- "3010:3010"
- "3100:3100"
environment:
- TZ=Asia/Shanghai
volumes:
- ./config:/pushme-server/config
restart: unless-stopped
如果您需要二次开发,请参考jj.js开发框架,开发时注意打开调试模式,在config/app.js里设置app_debug为true,上线时记得关闭调试模式。
目前push_key和官网共用,只能通过app从官方获取。另外,自建服务暂不支持temp_key。
# 如果是自己写的 Python 脚本,只需要在加入这样几行
import notify
title = 'xxxx'
notify.send(title, result)
不过我明明给这个 APP 自启动的权限,并且关闭了省电限制,也让它固定在后台,但是却发现依然不能收到通知,只能打开 APP 后刷新才能看到消息。
而且这 APP 一放到后台没多久,就会弹出一条通知**「通道状态:Disconnected」**
我发现直接把 APP 从后台划掉,这样就可以直接收到通知了。到「通知管理」里面,将 StateChannel 关掉,就不会收到通道状态的消息了。
更新 notice
qinglong 需要更新 notice 文件,由于我只使用 Python 脚本,所以去 GitHub 下载新的 qinglong/sample/notify.py at develop · whyour/qinglong · GitHub
然后替换掉原来的就可以了。
通过观察 notify.py 文件,可以看到这样的内容
def pushme(title: str, content: str) -> None:
# 使用 PushMe 推送消息。
if not push_config.get("PUSHME_KEY"):
print("PushMe 服务的 PUSHME_KEY 未设置!!\n取消推送")
return
print("PushMe 服务启动")
url = f'https://push.i-i.me/?push_key={push_config.get("PUSHME_KEY")}'
data = {
"title": title,
"content": content,
}
response = requests.post(url, data=data)
if response.status_code == 200 and response.text == "success":
print("PushMe 推送成功!")
else:
print(f"PushMe 推送失败!{response.status_code} {response.text}")
虽然里面用的是 post,不过其实我们把它转换一下,然后用 get 也是可以发送通知的。
https://push.i-i.me/?push_key=KEY&title=标题&content=内容
把这里的 KEY 换成自己的秘钥,然后把链接复制到浏览器访问一下,手机端就可以收到消息。
https://gitee.com/yafu/pushme/releases/latest
https://github.com/yafoo/pushme/releases/latest
因为各安卓系统杀后台严重,所以尽量给与app最大权限:
权限管理:允许自启动、后台运行
电池耗电管理:允许后台高耗电(实际测试,并不高耗电)
通知管理:允许消息通知
部分手机需要关闭“网络优化”选项,否则app进入后台会被断网
部分手机需要锁定应用
部分手机不能在多任务界面划掉APP
Android12手机,需开启APP的alerm闹钟权限
提醒:以上三项设置后,可在多任务页面把APP划掉,只留服务在后台运行。建议把通知设置里StateChannel也打开,方便查看服务是否在线,如果想关闭通道通知,可以在PushMe左上角设置里关闭。
特别提醒
设置手机消息通知权限时,建议把StateChannel通知也打开,方便查看服务连接状态。如确定服务可以24小时自动在线,想关闭此通知的话,建议在PushMe APP的设置里关闭通道通知。
通过网络搜集整理
刚才发现notify已经过时了,搭建python用下面这个吧:
python的推送通知