使用开源ntfy消息推送服务发布通知实现全平台接收通知

说明:

  • ntfy源代码:https://github.com/binwiederhier/ntfy.git
  • 官方未编译Windows版本,本人编译最新版本:(链接:https://pan.baidu.com/s/1pMsfqNb5FKHawTLUBTgjQA?pwd=f84u提取码:f84u)
  • 服务部署系统:Windows Server 2019或其他Windows系统

简介

ntfy是一个开源的消息通知服务,旨在简化消息发布和订阅的过程。它支持在各种平台上发送和接收通知,比如桌面、移动设备和命令行。以下是关于ntfy的一些基本介绍和使用方法

特性

  • 跨平台支持:可以在Windows、macOS、Linux、Android和iOS上使用
  • 多种传输方式:支持HTTP和WebSocket协议
  • 灵活的消息格式:可以发送纯文本、JSON以及其他格式的消息
  • 订阅机制:支持通过主题进行订阅,用户可以选择接收特定主题的通知
  • 集成能力强:可以与各种自动化工具、脚本语言和开发语言集成,比如Bash、Python、Java、JS、Go和.NET等

应用场景

系统监控和报警

ntfy可以用于监控服务器和应用的状态,当出现异常情况时即时发送通知

示例:

  • 服务器宕机通知
  • CPU 使用率过高警报
  • 磁盘空间不足通知
安全事件通知

ntfy 可以用于安全事件的即时通知,如检测到可疑登录、未授权访问等

示例:

  • 可疑登录尝试通知
  • 文件系统变更通知
应用程序事件通知

ntfy可以用于应用程序内部事件的通知,如用户注册、订单生成等

示例:

  • 新用户注册通知
  • 新订单生成通知
个人提醒和任务管理

ntfy也可以用于个人的提醒和任务管理,帮助用户按时完成任务

示例:

  • 日程提醒
  • 任务到期通知
IoT设备通知

ntfy可以用于物联网设备的状态通知和报警,比如温度传感器、烟雾报警器等

示例:

  • 温度过高报警
  • 烟雾检测报警

启动服务

ntfy serve --config=server.yml

server.yml

base-url: "http://192.168.8.212:5080"
listen-http: ":5080"
cache-file: "cache.db"
cache-duration: "36h"
attachment-cache-dir: "attachments"

说明:

  • base-url的用处之一就是作为附件访问路径前缀,比如上传的附件的下载链接为“http://192.168.8.212/file/OxtNu3vtGFpT.jpg”,“/file”之前就是base-url

启动服务,浏览器打开“http://192.168.8.212:5080/”

发送第一个消息

订阅主题

在这里插入图片描述

发布通知

在这里插入图片描述

在这里插入图片描述

发布含附件的通知

在这里插入图片描述

在这里插入图片描述

安卓手机接受通知

下载客户端

Google应用商店或者F-Droid下载安卓客户端“ntfy - PUT/POST to your phone”

订阅通知

【设置】,修改【默认服务器】为私人部署服务器

在这里插入图片描述

右下角加号,订阅主题,主题名称填写“test”

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

.NET项目发布通知

除了C#语言,其他语言比如,Go、Python、JS、Java、PHP和Rust等开发语言能都很方便使用ntfy发布通知,查看文档Projects + scripts如下

在这里插入图片描述

新建.NET 6.0控制台应用程序

NuGet安装ntfy v0.5.0

Program.cs

using ntfy.Actions;
using ntfy.Requests;
using ntfy;
namespace ConsoleApp1
{
    internal class Program
    {
        static async Task Main(string[] args)
        {
            // Create a new client
            var client = new Client("http://192.168.8.212:5080");
            // Publish a message to the "test" topic
            var message = new SendingMessage
            {
                Title = "This is a demo.",
                Actions = new ntfy.Actions.Action[]
                    {
                        new Broadcast("label")
                            {},
                            new View("打开百度", new Uri("http://www.baidu.com"))
                            {}
                    }
            };
            await client.Publish("test", message);
        }
    }
}

在这里插入图片描述

参考

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值