众所周知,FCM(GCM)在东方大国是没法正常使用的,那么依赖FCM作为消息推送方式的App消息推送也都成问题。

之前架设了Synapse,在Android手机上使用Element客户端,消息推送就是一直有问题的。

后来发现,从某版本的Synapse开始,它支持UnifiedPush这个消息推送规范了。

那么,搭建一个消息推送服务来用吧。

以下内容在Ubuntu 22.04 LTS上实际使用。

UnifiedPush规范是一个免费和开源的规范,支持多种不同的工具,这里我们使用ntfy作为推送服务器。

ntfy是一个基于HTTP的消息推送服务,允许通过脚本以及REST API的方式发送通知到PC或移动端上,并且100%免费开源。

其实是用来在服务器上跑的业务把进度通过消息推送到手机上,顺带做Synapse的消息推送。(大雾)

接下来就先搭建ntfy。

安装ntfy

安装好后先不启动,先来编辑一下配置文件。

 

编辑ntfy的配置文件

配置文件的位置:/etc/ntfy/server.yml

对配置文件作一个解释。

如果需要使用ntfy自带的Web页面,把最后一条配置删除即可。

 

修改启动脚本

按照ntfy官方文档的自建方法,直接使用systemctl start ntfy是无法启动成功的。

我们需要更改一下启动脚本的用户。

vim /usr/lib/systemd/system/ntfy.service

 

新建账户

由于ntfy默认是开放式服务,所以任何人都可以直接使用,这也就是在配置文件中关闭匿名用户的原因,只有经过认证的用户才可以使用。

所以我们需要新建用户,把密码记住,后面还要用到。

 

给UnifiedPush开权限

我们需要给使用UnifiedPush协议的软件开一个写入的权限。

up*是指UnifiedPush协议。

再开一个读取的权限,该权限开到用户身上。

 

在Android手机应用上设置ntfy

可以在Google Play商店或者其他应用商店(非东方大国特供)上安装ntfy。

或者到F-Droid上下载apk来安装。

最后在ntfy上设置默认服务器为你自己搭建的ntfy服务,将你新建的用于读取权限的用户和密码加入ntfy内。

 

最后打开Element,在设置->通知内将通知方式选择为ntfy。

选择好后,Element会自动在ntfy内订阅好,在ntfy的首页,就会显示一条类似于地址为abc.com/upX2slxuyr7QkoN(你搭建的服务的地址)的统一推送订阅。

这时,可以在Element->设置->高级设置->通知目标,里面看一下,推送密钥和URL是否为包含https://abc.com/(你搭建的服务的地址),如果包含则设置正确,如果是Matrix官方地址或其它地址,可以点最下方的移除,将该推送目标移除掉,重新设置通知方式为ntfy再试一下。


至此就可以正常的接收推送消息了,只是ntfy要一直在手机上开着就是了,就大D自己的测试而言,电量消耗还能接受。

 

版权声明
转载保留版权: 大D技研室 | 《用ntfy给Matrix-Synapse做消息推送服务》
本文链接地址:https://www.dadclab.com/archives/7919.jiecao
转载须知:如果您需要转载本文,请将版权信息,版权授权方式,以及本文的链接地址注明,谢谢合作。
本文被贴上了: , , , 标签