是否可以使用REST服务支持的服务器创建自定义推送通知?

是否可以使用REST服务支持的服务器创建自定义推送通知?,rest,push-notification,nativescript,angular2-nativescript,openedge,Rest,Push Notification,Nativescript,Angular2 Nativescript,Openedge,我有一个OpenEdge数据库,我创建了一个REST服务,能够从外部世界对其进行CRUD。 我已经创建了一个Nativescript应用程序,可以从REST服务等中提取数据,但现在我需要推送通知 我知道Progress Kinvey后端和Firebase后端的推送通知功能,但我不想使用它们 有没有办法在我的REST服务器等上创建我自己的推送通知?因此,首先我想让您了解推送通知的工作原理,以确保我们在同一页面上 安装应用程序后,您可以查询唯一令牌并将其保存在后端以备将来使用。当您想要发送推送通知时

我有一个OpenEdge数据库,我创建了一个REST服务,能够从外部世界对其进行CRUD。 我已经创建了一个Nativescript应用程序,可以从REST服务等中提取数据,但现在我需要推送通知

我知道Progress Kinvey后端和Firebase后端的推送通知功能,但我不想使用它们


有没有办法在我的REST服务器等上创建我自己的推送通知?

因此,首先我想让您了解推送通知的工作原理,以确保我们在同一页面上

安装应用程序后,您可以查询唯一令牌并将其保存在后端以备将来使用。当您想要发送推送通知时,您必须与APNs(Apple推送通知服务器)/FCM(Firebase云消息传递)通信,以便使用您先前获得的唯一令牌向您的iOS/Android设备发送推送通知

因此,现在您必须使用Firebase,因为这是您与Android通信的唯一方式,但您可以选择自己与APN通信。但在我看来,这对你来说是一个开销,因为双方都有自己的协议,你必须在iOS和Android之间区分你的代币,使用合适的协议等等


我建议您使用just(直到您已经非常熟悉APN),这样您就不必担心令牌属于哪个平台,随着时间的推移更新/撤销无效令牌等,FCM有相当不错的API和文档,可以让您的生活变得轻松。

我强烈建议您在这里查看答案

从中:

  • 当您想要从place_1(例如api)到place_2(例如浏览器客户端)提取任何内容时,您最需要的是 place_1_资源(通常是 (空气污染指数)
  • 当你想把任何东西从place_1(例如通知中心服务器)推送到place_2(手机客户端)时,你最需要的是 具有place_2_资源的标识符
  • 如果你没有你想要的手机的识别码 发送一个通知,你的服务器不知道该发送到哪里 通知,所以我们需要一个类似于手机的资源标识符 这实际上是一个类似设备的令牌,你只有一种方法 获取此设备的令牌,即FCM/APNS


    不要将REST与API混淆,后者几乎只为基于JSON的内容提供CRUD和漂亮的URI。很肯定,这只是一个通过HTTP进行通信的RPC驱动的API。遵循REST体系结构的应用程序将使用与基于浏览器的网页相同的概念,即内容类型协商、带注释的链接,为URI提供一些人类可以理解的含义,并提供请求-响应设计,总体上使客户端对更改具有鲁棒性,并使服务器能够自由发展。如果您想要推送通知,您可能需要查看Web套接字。这个答案没有多大意义?苹果推送通知服务器?iOS/Android从未在帖子中提及。我相信问题是关于NativeScript的,它是构建iOS和Android应用程序的框架,因此对我来说完全有意义。根据标签,后端似乎是开放的。我认为后端应该调用推送。当然,在您了解推送通知的工作原理以及为什么会有APNs/FCM之前,无论您使用什么后端编程语言,您都希望构建自己的推送服务器。我完全切换到Firebase已经有很长一段时间了,但我记得APN仍然使用套接字进行通信,并且它会随着时间的推移而断开连接,因为各种原因,您将不得不重新连接,并确保不会两次击中同一设备,撤销无效令牌。我的观点很简单,你不能避免FCM,因为它是Android的唯一选择,所以在iOS上也可以使用FCM,使工作更容易。我曾经考虑过Firebase