41

我需要使用Apple 推送通知服务 (APNS)从我的 Java 服务器向 iOS 设备发送推送通知

我找到了两个用 Java 发送 APNS 推送通知的库:

  1. java-apns
  2. javapns

但两者似乎都被放弃了(或者至少它们有错误,最后一个版本是一年前的)。

java-apns 有很多forks。该库是否有任何更新的分支正在积极开发中?还有其他更好的选择吗?

4

8 回答 8

37

如果其他人正在寻找 Java 中的 APNs 库,我们 RelayRides 刚刚发布了 Pushy ( http://relayrides.github.io/pushy/ )。它做的一些事情与其他两个竞争者不同(比如异步网络 IO),因此它可以非常快速地发送大量消息。我们实际上也在生产中使用它,所以它由我们的工程师积极维护。享受!

编辑:需要明确的是,Pushy 是免费和开源的(MIT 许可证)。

编辑:项目已移至https://github.com/jchambers/pushy

于 2013-08-22T21:28:02.960 回答
9

经过一段时间的挖掘,我只能找到你提到的那两个库,所以我查看了 java-apns GitHub 页面上的一些最新分支,我能找到的最新分支是由一个名为“的用户完成的” froh42"。他的叉子位于此处[已死]。最近的提交是 4 天前,但我不确定这个人是否真的在添加到 repo 的核心功能,因为它已经很晚了,我太累了,无法检查。

我的建议是,如果您要使用 java-apns,请查看 froh 的 repo 并查看它是否签出。如果没有,您可以在此处查看原始 java-apns 存储库中的分叉列表。对不起,我无法为您提供更多帮助,祝您好运!

注意:请勿使用您的任何库,因为它们基于 Binary Provider API,将从 2020 年 11 月起停止工作!

于 2013-01-26T11:30:29.773 回答
4

几个月前,我在我们的一个应用程序的 Java 后端遇到了同样的问题,在搜索了库(实际上这在 Google App Engine 上什至不是一个可能的选项)之后,我找到了Urban Airship

Urban Airship 是您的后端和各种推送通知服务之间的中间人(它确实支持 APNS,但也支持 android/blackberry/Win)。您只需要在他们的平台上配置您的推送服务,对他们的端点之一实施 REST 调用即可!

他们有从每月 100 万(1.000.000)条通知开始的免费计划。

到目前为止,服务真的很好,它使我们能够快速扩展到其他推送服务,而无需在我们的服务器端实现特定代码。

于 2013-01-26T12:42:44.153 回答
3

看起来 java-apns 正在更新。上次提交是 1 个月前...

https://github.com/notnoop/java-apns

我还没有使用它,但似乎至少该项目还没有死。

2020 年更新:该项目已终止,并且基于已弃用的 API,该 API 将于 2020 年 11 月停止工作。

于 2013-07-03T10:27:02.437 回答
2

我使用javapns,到目前为止我没有看到问题(我的项目仍在开发中);但我看到该项目自 2 年前以来没有更新。并且 java-apns 正在保持更新,我会尝试一下。

更新了我的答案,我从 3 个月前开始使用 pushy 作为 APN,它确实有更好的性能。现在我建议使用 pushy。

于 2014-08-16T12:48:43.407 回答
2

最后我决定在我的项目中使用 JavaPNS ( https://code.google.com/p/javapns/ ),它易于使用并且符合我的要求。

但我最近发现了一个看起来很有前途的新项目,我打算在不久的将来使用。

AeroGear项目内部有几个库。其中之一是支持 Apple 的 APN、Google Cloud Messaging 和 Mozilla 的 Simple Push的AeroGear UnifiedPush 服务器。

还具有客户端库(iOS、Android),可轻松与服务器集成:

还有其他一些很酷的功能,如管理控制台Java Sender 客户端 APIRest API ......

希望对其他人有所帮助。

于 2013-10-07T08:29:10.430 回答
1

JavaPns如果您打算使用它,我不会推荐,queue mode因为您想一次发送许多消息。有一个非常讨厌的错误让你失去推送通知,但图书馆说,一切都已发送。

于 2014-02-10T16:23:45.553 回答
1

这个非常好我用过

https://github.com/notnoop/java-apns

我也试过javaapns

https://code.google.com/p/javapns/

但是有些方法对我不起作用。它在发送通知时给了我success = true,但我的设备无法接收它。

于 2014-10-30T05:37:56.720 回答