如何使用php json数组在带有angularjs的cordova中实现推送通知

Posted

技术标签:

【中文标题】如何使用php json数组在带有angularjs的cordova中实现推送通知【英文标题】:How to implement push notification in cordova with angularjs using php json array 【发布时间】:2016-05-23 04:17:18 【问题描述】:

我有一个项目,我需要在服务器端使用 php 为 Cordova AngularJS 推送通知添加推送通知,它提供 JSON 数组作为输出。我可以使用它来实现聊天等,但我想知道如何在推送通知或访问本机应用程序 API 中实现它。首先我想使用 javascript SetInterval,但它会减慢应用程序的速度,并且每次都检查 API...

【问题讨论】:

【参考方案1】:

对于 Cordova 推送通知,您可以在此处查看: http://phonegappro.com/tutorials/apache-cordova-phonegap-push-notification-tutorial-part-1/

不过,让我们回顾一下使用 Web API 向客户端发送数据的其他一些方法:

    长时间轮询 - 在服务器端保持连接打开,无超时或长时间超时,并在您要发送推送通知时返回结果。

    使用 WebSockets - 打开与服务器的稳定 TCP 连接并双向传输消息(与 HTTP 的请求/响应模型不同)。

    使用PushManager - 这是一项实验性技术,尚不支持移动设备,所以我想这不适合你。

    李>

    使用简单轮询 - 不时轮询服务器以获取新消息。

Long pollingWeb Sockets 如果你有很多同时打开的连接会导致服务器过载,所以我不会去那里。此外,Web 套接字主要用于客户端之间的通信(服务器将客户端信息传递给两个客户端,然后它们可以自行通信,而无需服务器在它们之间进行中介)。

PushManager 是一项太新的技术,移动设备尚不支持。

对于您想要的(我猜是移动设备,因为您想使用 Cordova),并且在不知道您实际想要实现的目标的情况下,我会说选择 #4。我知道您已经尝试过了,但可能会尝试将轮询率降低到每 30 秒左右。

我知道,在调试时,从服务器发送一些东西似乎不太好,然后等待 30 秒的大部分时间,直到它出现在客户端上,但如果你从用户的角度考虑它,你'会看到用户不知道服务器何时发送数据,所以它确实显示为立即。

但是,如果您正在编写聊天客户端,那么我会使用 web-sockets,使用服务器连接聊天中的两个(或更多)客户端并让它们直接传递消息。如果您希望聊天由服务器支持,只需使用简单的 AJAX 定期将脚本发送到服务器。

【讨论】:

【参考方案2】:

DIY 与托管实时数据流网络服务

如果您不希望有超过几千个客户端使用您的应用程序,DIY(自己动手)套接字技术(WebSockets、Socket.io 等)是可行的。超过几千个(我们的许多客户说在 5 到 10000 个范围内),您将在扩展您的服务时遇到困难(以及服务器资源和可扩展代码的大量费用)。

使用 PubNub、Pusher、Ably 等托管的实时数据流网络服务成本更低、复杂性更低,而且可以正常工作。使用一些托管服务(肯定是 PubNub - 我为之工作 - 完全公开)提供了publish the message in realtime and include a push payload (for GCM, APNS and MPNS) that will also send the push notification if the app is in the background or not running 的能力。

使用PubNub BLOCKS,您还可以实现在 PubNub 网络中运行的服务器端代码,以检查、操作或处理消息,而无需您的服务器完成工作。这意味着您可以将消息发送到其他第三方服务:将消息翻译成另一种语言、出于任何原因使用 AI 服务、发送 SMS/电子邮件/等等等等。

【讨论】:

以上是关于如何使用php json数组在带有angularjs的cordova中实现推送通知的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AngularJS 输出 JSON 数组中的元素

如何使用 angularjs 填充 json 数据?

如何在angularjs中通过ajax显示来自url的json数组

如何获取json数组值并显示在angularjs的下拉列表中?

用于 angularjs 网站的带有 json rpc 的节点服务器

Chart.js 数据数组使用 PHP、MySQL。如何从 JSON 数组定义数据源?