如何让我的服务器支持APN?

时间:2009-10-12 13:18:41

标签: iphone push-notification

我在一些stackOverflow帖子中读到主机需要打开端口2195并支持apns下的推送通知。我是否让我的服务器支持apns。

推送通知指南中该行的含义

要建立可信赖的提供者身份,我们应该 使用对等身份验证在连接时将此证书提供给APN。

我需要通过我的原生应用程序与APns建立连接吗?有人请解释一下

5 个答案:

答案 0 :(得分:3)

几乎任何对您可以打开的套接字没有限制的服务器都可以成为APNS提供商。在项目代码中,您只需打开Apple服务器的套接字(或使用库)。

我的理解是Google App Engine和基本上任何传统的共享网络托管都阻止了80以外的任何端口,因此您无法使用它们。但是,您可以查看提供基本上可以从任何服务使用的RESTful API的Urban Airship。它可能会变得昂贵。

答案 1 :(得分:0)

简而言之,您需要建立SSL连接,然后以预定义的二进制格式发送有效负载。

alt text http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Art/aps_provider_binary.jpg

有关详细信息,请参阅this guide

答案 2 :(得分:0)

我使用appengine,所以我通过在hetzner.de租用超便宜的服务器来解决这个问题。它基本上作为我的appengine应用程序的代理,并使用此库:https://github.com/notnoop/java-apns

该库有一种使用证书发送邮件的方式。

答案 3 :(得分:0)

Google刚刚开启了在AppEngine上执行Socket工作的能力,因此我创建了一个示例项目,您可以使用它在Python中使用GCM和APNS发送推送通知。随意使用您喜欢的任何一种。

我还提供了一个示例iOS项目和Android项目,它与应用引擎解决方案很好地结合在一起。

https://github.com/GarettRogers/appengine-apns-gcm

**完全披露**这是我的项目,我不会尝试推广它,因为它是我的...它只是目前解决问题的唯一可用项目。如果您发现任何更好的工作,请发表评论。

答案 4 :(得分:0)

您可以查看java-apns-gae

这是一个开源的Java APNS库,专为在Google App Engine上工作(和使用)而设计。

https://github.com/ZsoltSafrany/java-apns-gae