来自服务器的 iPhone 实时通知,无需使用 Apple 推送通知

Posted

技术标签:

【中文标题】来自服务器的 iPhone 实时通知,无需使用 Apple 推送通知【英文标题】:iPhone real time notification from a server, without using Apple push notification 【发布时间】:2009-10-19 16:48:54 【问题描述】:

我正在寻找一种从 iPhone 应用程序中的服务器获取实时通知的方法。我不想使用 Apple Push Notification,因为我有很多通知。我的 Web 服务是用 php 编码的,我还没有找到一种简单的方法来实现这个功能。知道我该怎么做吗?

非常感谢您的帮助!

编辑:我正在寻找一种仅在应用程序启动时获取通知的方法(否则,唯一的选择是 Apple Push 不是。)。

【问题讨论】:

如果您需要在应用程序未运行时也能收到通知,您必须使用 Apple 的推送通知服务。是这样吗? 不是,我只是想在App启动的时候使用。 抱歉我的问题不够精确 Pgb,感谢您的帮助! :) 在应用商店指南中您可以阅读:5.1 不使用 Apple 推送通知 (APN) API 提供推送通知的应用将被拒绝 ==> 因此,如果针对应用,我们不能再这样做了商店 【参考方案1】:

如果应用程序正在运行,您可以打开从应用程序到服务器的 http 连接,并让服务器保持打开状态,并在需要时通过它推送数据。这基本上就是COMET 的工作原理。

这仅在您的应用运行时有效。如果您需要在用户关闭应用的情况下发出通知,那么 Apple 推送通知是您唯一的选择。

【讨论】:

谢谢你的回答,路易斯!是的,我读到了 COMET 或 XMPP,这看起来像是一个解决方案。但是你有什么例子可以在 PHP 服务器和 Objective-c 客户端上实现它吗?看来它需要某种服务才能在服务器上运行,对吗? 是的,它需要服务器和客户端支持。抱歉,我没有任何使用 PHP 做这类事情的经验。 好吧,在寻找最佳解决方案几天后,我得出了在我的 Debian 服务器上使用的结论: › RabbitMQ 作为消息队列服务器,安装了 STOMP 扩展:rabbitmq.com › The关注 PHP 的 Stomp 客户端:stomp.fusesource.org/documentation/php/index.html ‹ ObjectveC 的以下 Stomp 客户端:github.com/juretta/objc-stomp 我能够使这个解决方案工作:) 谢谢大家的帮助!【参考方案2】:

您必须使用 Apple Push Notification 在 Apple 的移动设备上实现推送通知周期。

【讨论】:

以上是关于来自服务器的 iPhone 实时通知,无需使用 Apple 推送通知的主要内容,如果未能解决你的问题,请参考以下文章

推送通知在 iphone 中没有收到来自 Parse.com 服务器的某些时间

来自 UrbanAirship 的推送通知不适用于 android 中的实时服务器(即使用生产密钥)

如何在我的 iPhone 应用程序中显示来自服务器端的推送通知

如何使用来自 iPod 库的声音更改 iPhone 的通知声音

iphone os 4.0以下是不是提供本地通知功能?

用于实现实时聊天应用程序的推送通知与 Web 套接字?