【Mobile Push - 自己做个移动端消息推送】

2024-04-08 07:04

本文主要是介绍【Mobile Push - 自己做个移动端消息推送】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

介绍

Mobile Push 是什么,还不清楚的同学可以参考这篇【Mobile Push - 揭秘!移动端消息推送】。

简单来说就是 移动端上的消息弹框提示 ,一般来讲,我们可以直接对接设备厂商的云服务通道 或者 借助国内外第三方Mobile Push消息推送服务 来实现这个功能。但是其实这个也可以不和设备厂商,第三方消息推送服务商强绑定,完完全全自己做。
下面介绍下,开源消息推送协议Unifiedpush

开源协议 - Unifiedpush

UnifiedPush :UnifiedPush 是一种去中心化的开源推送通知协议,旨在为移动应用提供推送通知服务,而无需依赖单一公司提供的平台。它遵循Web推送(WebPush)标准,为用户提供更好的隐私和独立性。

划重点,Unifiedpush是协议,所以需要框架实现。Unifiedpush无需依赖单一公司提供的平台,这里的意思是不和设备系统厂商(苹果,谷歌或者其它系统厂商)强绑定,可以不借助他们的云服务消息通道。

原理

在进一步之前,简单回顾下,基于设备厂商的云服务通道进行消息推送的过程。如下

基于设备厂商云服务通道 - 消息推送流程
Provider在这里指的是消息发送方,其将需要推送的消息发送到云服务通道,云服务通道再推送到移动端设备。
而开源消息推送协议-Unifiedpush协议对于整个消息推送过程,有更具体的描述,如下流程,

基于开源协议Unifiedpush - 消息推送流程

过程描述

  • 业务方服务Application Server先推送一条消息到推送服务Push Server上。
  • 推送服务Push Server再推送消息到手机上预装的分发程序Distributor app
  • 分发程序Distributor app再进行消息通知到对应Phone application,从而进行消息弹框。

下面继续看下根据协议流程,怎么实现这个过程。Unifiedpush协议有不同的开源库,我们选择一个成熟的开源库-ntfy,那么下面我们来看下如何基于开源库ntfy来实现 - 移动端消息推送。

基于ntfy,消息推送

对照着Unifiedpush协议,使用开源库ntfy,使用填空的方式, 把ntfy中不同的部分填入到Unifiedpush协议所需各个组成部分,如下图

基于Unifiedpush协议-使用ntfy

准备工作

准备工作,关注下面3部分,

1 - Distributor app && Phone application

下载ntfy app并安装到手机上,用作Distributor app 和 Phone application

下载ntfy app

2 - Push Server

push server可以基于开源库ntfy库进行自建 https://docs.ntfy.sh/install/ 。也可以直接使用ntfy搭建好的公共服务(域名地址 ntfy.sh),这里演示直接使用ntfy提供的服务 ntfy.sh

3 - Application Server

我们自己的应用服务,也是消息产生的源头,产生的消息可以通过 http接口调用(curl), 或使用 ntfy cli 或 其它sdk调用,发送给Push Server。以http接口调用举例:

curl -d "hi" ntfy.sh/${your subscrib name}

实际使用

准备完毕后 ,即可开始使用,

  • 进入ntfy app中先添加下订阅名称 ,这里起个名字叫tt001
  • 然后使用curl命令模拟Application server调用下http接口
curl -d 'hi' ntfy.sh/tt001
  • 调用后即可看到推送的消息

使用过程

效果展示

以上便是基于Unifiedpush协议,通过ntfy实现消息推送的完整示例了。
最后给大家留个小问题,如果是基于厂商的云服务通道做的消息推送,里面是没有额外提到 distributor app这部分的。如下对比,

基于厂商做消息推送:业务方 → 云通道(厂商提供) → 手机 app消息弹框
基于开源协议做消息推送: 业务方 → 云通道(自部署) → 手机 distributor app → 手机 app消息弹框

那么开源协议的流程, 为什么会多一个distributor app呢?

参考

推送协议:https://unifiedpush.org
服务端协议:https://unifiedpush.org/spec/server/
ntfy: https://docs.ntfy.sh/

这篇关于【Mobile Push - 自己做个移动端消息推送】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/884888

相关文章

移动硬盘盒:便携与交互的完美结合 PD 充电IC

在数字化时代的浪潮中,数据已成为我们生活中不可或缺的一部分。随着数据的不断增长,人们对于数据存储的需求也在不断增加。传统的存储设备如U盘、光盘等,虽然具有一定的便携性,但在容量和稳定性方面往往难以满足现代人的需求。而移动硬盘,以其大容量、高稳定性和可移动性,成为了数据存储的优选方案。然而,单纯的移动硬盘在携带和使用上仍存在诸多不便,于是,移动硬盘盒应运而生,以其独特的便携性和交互性,成为了数据存储

VirtualBox中,虚拟系统文件VDI移动或者复制

在安装virtualbox以后有时需要复制,移动虚拟磁盘等操作,这些操作在vmware的虚拟机下面可以直接操作虚拟磁盘即可使用,但是在virtualbox环境 下每个VDI 文件都有一个唯一的uuid,而VirtualBox 不允许注册重复的uuid,所以直接复制的VDI文件是不能拿来使用的,我们就需要使用到virtualbox自带的管理命令来克隆一个VDI,这样通过命令克隆的VDI文件会重

Steam邮件推送内容有哪些?配置教程详解!

Steam邮件推送功能是否安全?如何个性化邮件推送内容? Steam作为全球最大的数字游戏分发平台之一,不仅提供了海量的游戏资源,还通过邮件推送为用户提供最新的游戏信息、促销活动和个性化推荐。AokSend将详细介绍Steam邮件推送的主要内容。 Steam邮件推送:促销优惠 每当平台举办大型促销活动,如夏季促销、冬季促销、黑色星期五等,用户都会收到邮件通知。这些邮件详细列出了打折游戏、

邮件群发推送的方法技巧?有哪些注意事项?

邮件群发推送的策略如何实现?邮件推送怎么评估效果? 电子邮件营销是现代企业进行推广和沟通的重要工具。有效的邮件群发推送不仅能提高客户参与度,还能促进销售增长。AokSend将探讨一些关键的邮件群发推送方法和技巧,以帮助企业优化其邮件营销策略。 邮件群发推送:目标受众 了解他们的需求、兴趣和行为习惯有助于你设计出更具吸引力和相关性的邮件内容。通过收集和分析数据,创建详细的客户画像,可以更精

消息认证码解析

1. 什么是消息认证码         消息认证码(Message Authentication Code)是一种确认完整性并进行认证的技术,取三个单词的首字母,简称为MAC。         消息认证码的输入包括任意长度的消息和一个发送者与接收者之间共享的密钥,它可以输出固定长度的数据,这个数据称为MAC值。         根据任意长度的消息输出固定长度的数据,这一点和单向散列函数很类似

物联网系统运维——移动电商应用发布,Tomcat应用服务器,实验CentOS 7安装JDK与Tomcat,配置Tomcat Web管理界面

一.Tomcat应用服务器 1.Tomcat介绍 Tomcat是- -个免费的开源的Ser Ivet容器,它是Apache基金会的Jakarta 项目中的一个核心项目,由Apache, Sun和其他一 些公司及个人共同开发而成。Tomcat是一一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。 在Tomcat中,应用程序的成部署很简

rocketmq问题汇总-如何将特定消息发送至特定queue,消费者从特定queue消费

业务描述 由于业务需要这样一种场景,将消息按照id(业务id)尾号发送到对应的queue中,并启动10个消费者(单jvm,10个消费者组),从对应的queue中集群消费,如下图1所示(假设有两个broker组成的集群):  producer如何实现 producer只需发送消息时调用如下方法即可 /*** 发送有序消息** @param messageMap 消息数据* @param

Spring 集成 RabbitMQ 与其概念,消息持久化,ACK机制

目录 RabbitMQ 概念exchange交换机机制 什么是交换机binding?Direct Exchange交换机Topic Exchange交换机Fanout Exchange交换机Header Exchange交换机RabbitMQ 的 Hello - Demo(springboot实现)RabbitMQ 的 Hello Demo(spring xml实现)RabbitMQ 在生产环境

SpringBoot中如何监听两个不同源的RabbitMQ消息队列

spring-boot如何配置监听两个不同的RabbitMQ 由于前段时间在公司开发过程中碰到了一个问题,需要同时监听两个不同的rabbitMq,但是之前没有同时监听两个RabbitMq的情况,因此在同事的帮助下,成功实现了监听多个MQ。下面我给大家一步一步讲解下,也为自己做个笔记; 详细步骤: 1. application.properties 文件配置: u.rabbitmq.ad

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇Kerberos委派安全RBCD资源Operators组成员HTLMRelay结合

基于资源的约束委派(RBCD)是在Windows Server 2012中新加入的功能,与传统的约束委派相比,它不再需要域管理员权限去设置相关属性。RBCD把设置委派的权限赋予了机器自身,既机器自己可以决定谁可以被委派来控制我。也就是说机器自身可以直接在自己账户上配置msDS-AllowedToActOnBehalfOfOtherIdentity属性来设置RBCD。 所以核心就是谁或什么权限能修改