创建我自己的推送通知服务,没有fcm,推送器,

时间:2018-06-14 05:16:50

标签: android push-notification sdk notificationservices

我想创建一个不基于Google服务或类似服务的通知系统提供商。事实上,我希望获得有关其整体架构的信息,并且需要Android sdk 功能。

对我来说最奇怪的一点是了解如何向Android设备发送通知。

我的意思是,如何从互联网上数以百万计的其他Android设备中识别安装了我的应用程序的Android设备?

我如何向他发送信息? 我应该为这个或类似的东西使用插座吗?

1 个答案:

答案 0 :(得分:0)

简单答案:您不能

在其他所有操作之前,我应该纠正您的问题,pusher和FCM根本不在同一个组中!您可以构建诸如pusher或oneSignal之类的东西,但不能构建诸如FCM / APNS之类的东西

您应该了解以下三个简单但重要的句子:

  1. 当您想将任何内容从 place_1(例如api)拉到 place_2(例如browser_client)时,您最有一个place_1_resource的标识符(通常是统一的- api的资源定位器)
  2. 当您想将任何内容从 place_1(例如,notification_central_server)推送到 place_2(cellphone_client)时,您最多都有一个place_2_resource的标识符
  3. 您必须了解真实服务器推送类似服务器推拉技术(例如长拉或... )之间的区别,以及您应该知道,此概念的意图是真正的服务器推送,而不是任何带有推送夹克的拉动!

如果您没有要发送通知的手机的标识符,则服务器不知道该通知的发送位置,因此我们需要一个类似于resource_identifier_like的手机,它实际上是一个 device_token_like ,您只有一种方法可以获取此device_token_like,那就是FCM / APNS

FCM就像是dns服务器,其中包含google支持的每个android设备(几乎每个android设备)的所有标识符,而APNS只是苹果设备一样

注释1:,即使您的应用程序可以获取其对应的设备device_token_like,如果未在FCM / APNS上注册,也无法将其用于推送通知

因此,当您获得所需clinet_device的device_token_like标识符时,现在可以使用其他方法将sth发送到该clinet_device。有几种方法,例如SSE,Webpush,HTTP_server_push,Pushlet等。但这些设备的mother_companies不支持这些方法,唯一得到完全支持且标准的方法是与FCM / APNS相同的方法官方网站建议

例如,由于美国的制裁,名为najva的伊朗公司使用webpush发送通知,但是webPush方法在浏览器和android设备上效果很好,但它们甚至没有出现在苹果设备上

最后,我应该说,我很欣赏您的好奇心,在开发中减少使用基于FCM / APNS的基于Benefit_Inc。的产品,但我强烈建议您阅读这些文章和书籍,因为我认为您学得不足:

  1. wikipedia of push technology
  2. story of some guy who tries to make his own push notification service
  3. Push Technology A Complete Guide - 2020 Edition
  4. Data Push Apps with HTML5 SSE