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

说明:

简介

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"

说明:

启动服务,浏览器打开“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);
        }
    }
}

参考

posted @ 2024-07-02 22:31  VinciYan  阅读(318)  评论(0编辑  收藏  举报