我需要使用Apple 推送通知服务 (APNS)从我的 Java 服务器向 iOS 设备发送推送通知
我找到了两个用 Java 发送 APNS 推送通知的库:
但两者似乎都被放弃了(或者至少它们有错误,最后一个版本是一年前的)。
java-apns 有很多forks。该库是否有任何更新的分支正在积极开发中?还有其他更好的选择吗?
我需要使用Apple 推送通知服务 (APNS)从我的 Java 服务器向 iOS 设备发送推送通知
我找到了两个用 Java 发送 APNS 推送通知的库:
但两者似乎都被放弃了(或者至少它们有错误,最后一个版本是一年前的)。
java-apns 有很多forks。该库是否有任何更新的分支正在积极开发中?还有其他更好的选择吗?
如果其他人正在寻找 Java 中的 APNs 库,我们 RelayRides 刚刚发布了 Pushy ( http://relayrides.github.io/pushy/ )。它做的一些事情与其他两个竞争者不同(比如异步网络 IO),因此它可以非常快速地发送大量消息。我们实际上也在生产中使用它,所以它由我们的工程师积极维护。享受!
编辑:需要明确的是,Pushy 是免费和开源的(MIT 许可证)。
经过一段时间的挖掘,我只能找到你提到的那两个库,所以我查看了 java-apns GitHub 页面上的一些最新分支,我能找到的最新分支是由一个名为“的用户完成的” froh42"。他的叉子位于此处[已死]。最近的提交是 4 天前,但我不确定这个人是否真的在添加到 repo 的核心功能,因为它已经很晚了,我太累了,无法检查。
我的建议是,如果您要使用 java-apns,请查看 froh 的 repo 并查看它是否签出。如果没有,您可以在此处查看原始 java-apns 存储库中的分叉列表。对不起,我无法为您提供更多帮助,祝您好运!
注意:请勿使用您的任何库,因为它们基于 Binary Provider API,将从 2020 年 11 月起停止工作!
几个月前,我在我们的一个应用程序的 Java 后端遇到了同样的问题,在搜索了库(实际上这在 Google App Engine 上什至不是一个可能的选项)之后,我找到了Urban Airship。
Urban Airship 是您的后端和各种推送通知服务之间的中间人(它确实支持 APNS,但也支持 android/blackberry/Win)。您只需要在他们的平台上配置您的推送服务,对他们的端点之一实施 REST 调用即可!
他们有从每月 100 万(1.000.000)条通知开始的免费计划。
到目前为止,服务真的很好,它使我们能够快速扩展到其他推送服务,而无需在我们的服务器端实现特定代码。
看起来 java-apns 正在更新。上次提交是 1 个月前...
https://github.com/notnoop/java-apns
我还没有使用它,但似乎至少该项目还没有死。
2020 年更新:该项目已终止,并且基于已弃用的 API,该 API 将于 2020 年 11 月停止工作。
我使用javapns,到目前为止我没有看到问题(我的项目仍在开发中);但我看到该项目自 2 年前以来没有更新。并且 java-apns 正在保持更新,我会尝试一下。
更新了我的答案,我从 3 个月前开始使用 pushy 作为 APN,它确实有更好的性能。现在我建议使用 pushy。
最后我决定在我的项目中使用 JavaPNS ( https://code.google.com/p/javapns/ ),它易于使用并且符合我的要求。
但我最近发现了一个看起来很有前途的新项目,我打算在不久的将来使用。
AeroGear项目内部有几个库。其中之一是支持 Apple 的 APN、Google Cloud Messaging 和 Mozilla 的 Simple Push的AeroGear UnifiedPush 服务器。
还具有客户端库(iOS、Android),可轻松与服务器集成:
还有其他一些很酷的功能,如管理控制台、Java Sender 客户端 API、Rest API ......
希望对其他人有所帮助。
JavaPns
如果您打算使用它,我不会推荐,queue mode
因为您想一次发送许多消息。有一个非常讨厌的错误让你失去推送通知,但图书馆说,一切都已发送。
这个非常好我用过
https://github.com/notnoop/java-apns
我也试过javaapns
https://code.google.com/p/javapns/
但是有些方法对我不起作用。它在发送通知时给了我success = true,但我的设备无法接收它。