如何使用Javapns支持Apple的增强通知格式
您好,
我正在创建一个基于 Java 的服务器来为 Apple 的 iOS APNs 服务创建推送通知。我在 google code 上发现了 Javapns,它似乎提供了一个简单的基本框架来与 APN 进行通信,并且似乎得到了相当广泛的使用。
http://code.google.com/p/javapns/
但是,阅读Apple的文档,通知有一种“增强格式”,支持“过期”,即设置通知在尚未发送时过期的时间(以秒为单位)。我没有看到任何使用 Javapns 进行设置的方法,并且如果您没有明确设置它,我不确定 APNs 服务如何处理通知到期。那么,
- 有谁知道如何支持 APNs 的增强通知格式,具体如何设置过期时间?
- 有谁知道如果没有明确设置Apple如何处理通知到期?
- 由于服务器当前正常运行,有人有任何建议不需要我从头开始吗?
提前致谢。
安德鲁
Greetings,
I am creating a Java based server to create push notifications for Apple's iOS APNs service. I have found Javapns on google code which seems to provide a simple basic framework to communicate with APNs, and which seems to be fairly wide used.
http://code.google.com/p/javapns/
However, reading Apple's docs, there is an "enhanced format" for notifications which supports "expiry" i.e. setting a time (well, in seconds) for a notification to expire if it hasn't yet been delivered. I do not see any way to set this using Javapns, and I am unsure how the APNs service handles expiry of notifications if you do not explicitly set it. So,
- Does anyone know how to support the enhanced notification format of APNs specifically how to set the expiry?
- Does anyone know how Apple handles notification expiry if it isn't explicitly set?
- Does anyone have any suggestions that don't require me to start from scratch, as the server is currently functional as is?
Thanks in advance.
Andrew
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我最近为 JavaPNS 项目做出了重大贡献,这导致了几天前 JavaPNS 2.0 的发布。该版本提供对增强通知格式的全面支持,包括设置您自己的到期时间的能力。
西尔万
I have recently made substantial contributions to the JavaPNS project, which lead to the release of JavaPNS 2.0 a few days ago. That version provides full support for the enhanced notification format, including the ability to set your own expiry.
Sylvain
很高兴您找到了 java 库...可惜您没有阅读那里的文档。
我将在下面发布一些要点:
现有代码使用“简单通知格式”,它永远不会返回错误。
请参阅以下位置的文档:
http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingWIthAPS/CommunicatingWIthAPS.html
我已尝试更新为“增强型通知格式”它应该返回一个错误,但我无法从 APNS 返回任何错误。 (也在上面的链接中)
使用增强格式,发送数据后连接不会立即断开,但我没有从 socket.getInputSocket.read() 调用中得到任何信息。
这个问题必须先搁置起来,直到我有更多时间进行故障排除。
(还有人评论)
非常感谢您的调查。
我得到了和你一样的结果。可能和Apple Gateway有关系。
所以...你可以:
1)建立你自己的
2)帮助改进现有库
3)尝试另一个库,例如: https://github.com/notnoop/java-apns
4)什么也不做
Nice that you found the java library... to bad you didn't read the docs there.
I'll post some of the highlights below:
The existing code uses the 'Simple notification format' which does not return an error EVER.
See docs at:
http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingWIthAPS/CommunicatingWIthAPS.html
I've tried updating to the 'Enhanced notification format' which is supposed to return an error, but I'm unable to get any errors back from the APNS. (also in the link above)
With the Enhanced format, the connection isn't being dropped immediately after sending data, but I'm not getting anything back from my socket.getInputSocket.read() call.
This issue will have to be tabled until I have more time to troubleshoot.
(Someone else commented)
Thanks a lot for looking into it.
I got the same result as yours. Maybe it has something to do with Apple Gateway.
So... you could:
1) Build your own
2) Help improve the existing library
3) Try another library like: https://github.com/notnoop/java-apns
4) Do nothing
增强型 ios 推送此处。
要发送通知,您可以通过三个步骤完成:
设置连接
创建并发送消息
查询非活动设备的反馈服务:
Enhanced ios push here.
To send a notification, you can do it in three steps:
Setup the connection
Create and send the message
To query the feedback service for inactive devices: