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



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

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

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

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

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

  3. 使用PushManager-这是一项实验性技术,在移动设备上还不支持,所以我想这对你来说是不可能的。

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

如果有很多同时打开的连接,长轮询Web套接字将使服务器过载,所以我不会去那里。此外,Web套接字主要用于客户端之间的通信(服务器将客户端信息传递给两个客户端,然后它们可以在没有服务器的情况下自行通信)。

PushManager太新了,这是一项尚未在移动设备中得到支持的技术。

对于你想要的(我想是移动的,就像你想使用Cordova一样),在不知道你实际想要实现什么的情况下,我会说选择#4。我知道你已经尝试过了,但也许可以尝试将轮询率降低到每30秒左右

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

然而,如果你正在编写一个聊天客户端,那么我会使用网络套接字,使用服务器连接聊天中的两个(或多个)客户端,并让它们直接传递消息。如果你想让聊天得到服务器支持,只需使用简单的AJAX定期将文字记录发送到服务器即可。

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

如果你不希望有超过几千个客户端使用你的应用程序,那么DIY(自己动手)套接字技术(WebSockets、Socket.io等)是可行的。超过几千(我们的许多客户说在5到1万之间),您将面临扩展服务的困难(以及在服务器资源和可扩展代码方面的巨大开支)。

使用托管的实时数据流网络服务,如PubNub、Pusher、Ably等,成本和复杂性都会降低,而且可以正常工作。有了一些托管服务(PubNub,我为之工作),可以实时发布消息,并包括推送负载(用于GCM、APNS和MPNS),如果应用程序在后台或未运行,推送负载也会发送推送通知。

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

最新更新