【Delphi】 各个平台使用 ntfy 效果说明

news/2024/7/24 10:22:13 标签: ntfy, 消息订阅, Delphi 消息订阅, Delphi ntfy

目录

ntfy%20%E5%BA%93%E4%B8%8B%E8%BD%BD%E5%9C%B0%E5%9D%80-toc" style="margin-left:0px;">一、Delphi 中使用 ntfy 库下载地址

二、各个平台使用效果说明

1. android 平台

2. ios 平台

3. windows 平台

三、总结


ntfy%20%E5%BA%93%E4%B8%8B%E8%BD%BD%E5%9C%B0%E5%9D%80">一、Delphi 中使用 ntfy 库下载地址

  • 官方的文档地址:ntfy
  • Delphi 接口库地址:GitHub - hazzelnuts/ntfy-for-delphi at net-http

二、各个平台使用效果说明

约定:

        ntfy 既可以订阅消息,也可以发布消息。我们约定订阅消息和发布消息在同一个程序中,例如对于windows来说,就是一个EXE程序,对于android来说就是一个apk文件。

1. android 平台

  1. 发布消息和订阅消息函数如果都在主进程中运行,则启动订阅功能后,如果调用发布消息,则会导致程序卡死;改进的方法是将订阅消息在主进程中执行,但是发布消息通过线程任务来执行!
  2. 程序进入后台,然后重新前台后,订阅和发布消息功能都正常;
  3. 如果收到了订阅消息,此时立即发布消息(测试在40秒内),发布消息会正常发布成功,但是订阅消息会把刚刚收到的订阅消息在触发收到一次,这是不是期望的结果,需要进行处理。处理的方法是,每隔消息都有Id,如果收到的小时的Id就是上一条消息的Id,就不用处理,说明是重复收取。

2. ios 平台

  1. 发布消息和订阅消息函数如果都在主进程中运行,则启动订阅功能后,如果调用发布消息,不会导致程序卡死;
  2. 程序进入后台,然后重新前台后,订阅将会失效,发布消息功能正常;
  3. 如果收到了订阅消息,此时立即发布消息(测试在40秒内),发布消息会正常发布成功,但是订阅消息会把刚刚收到的订阅消息在触发收到一次,这是不是期望的结果,需要进行处理。处理的方法是,每隔消息都有Id,如果收到的小时的Id就是上一条消息的Id,就不用处理,说明是重复收取。

3. windows 平台

  1. 发布消息和订阅消息函数如果都在主进程中运行,则启动订阅功能后,如果调用发布消息,不会导致程序卡死;
  2. windows系统休眠后,然后重新启动后,订阅将会失效,发布消息功能正常;
  3. 如果收到了订阅消息,此时立即发布消息(测试在40秒内),发布消息会正常发布成功,但是订阅消息会把刚刚收到的订阅消息在触发收到一次,这是不是期望的结果,需要进行处理。处理的方法是,每隔消息都有Id,如果收到的小时的Id就是上一条消息的Id,就不用处理,说明是重复收取。

三、总结

序号平台发布订阅同一程序前台 - 后台 - 前台40秒内会重复收到订阅消息
1android① 异常(卡死)正常③ 会收到重复消息
2ios正常② 异常
3windowindows正常

处理方法:

① :将发布消息函数放置在线程中;

② :监测ios程序从前台到后台以及从后台到前台的变化事件,监测Windows程序从休眠到启动该以及从启动到休眠的变化事件,在变化事件中重新订阅消息;

③ :对于订阅事件中根据消息Id,过滤掉重复的消息;

程序APP_BOX中使用!


http://www.niftyadmin.cn/n/5173896.html

相关文章

Nginx:不同域名访问同一台机器的不同项目

Nginx很简单就可以解决同一台机器同时跑两个或者多个项目,而且都通过域名从80端口走。 以Windows环境下nginx服务为例,配置文件nginx.conf中,http中加上 include /setup/nginx-1.20.1/conf/conf.d/*.conf;删除server部分,完整如…

【数据结构】——栈、队列及串简答题模板

目录 一、栈(一)栈的基本概念(二)栈的应用(三)栈的代码实现(四)递归算法(五)栈与队列的区别 二、队列(一)队列的基本概念(…

android studio离线tips

由于种种原因(你懂的,导致我们使用android studio会有很多坑,这里记录一下遇到的问题以及解决方案 环境问题 无法下载gradle 因为android studio采用gradle作为构建工具,国内gradle没有镜像下载非常慢,并且大概率失…

数据库 关系数据理论

问题 数据冗余更新异常插入异常删除异常 一个好的模式应当不会发生插入异常、删除异常和更新异常,数据冗余应尽可能少 数据依赖 定义:一个关系内部属性与属性之间的一种约束关系(该约束关系是通过属性间值的相等与否体现出来数据间相关联…

No181.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

大数据-之LibrA数据库系统告警处理(ALM-12039 GaussDB主备数据不同步)

告警解释 GaussDB主备数据不同步,系统每10秒检查一次主备数据同步状态,如果连续6次查不到同步状态,或者同步状态异常,产生告警。 当主备数据同步状态正常,告警恢复。 告警属性 告警ID 告警级别 可自动清除 12039…

linux之IPC

linux之IPC 什么是IPC共享内存(shm)ftokshmgetshmatshmdtshmctl 消息队列msggetmsgrcvmsgsndmsgctl 旗语(信号量)semgetsemctlsemopsem三级标题三级标题 ipc命令守护进程查看守护进程 什么是IPC IPC: Inter(内核) Process(进程) Communicton(通信) 共享内…

(离散数学)逻辑连接词

异或可以理解为不同为1相同为0 P->Q的前件和后件满足0->1的其中一个就为真 <—>可以看做 &#xff0c;相同为1不同为0 异或与等价相反