我正在使用套接字api与Apple推送通知服务进行通信,虽然我不确定我是否正确使用它...
我有一个初始化函数,我建立了与APNS的连接。但是,何时是在连接上调用Close()的正确时间?或者我只是把它打开并继续重复使用它?
谢谢!
答案 0 :(得分:1)
Apple明确要求您不要关闭与APNS的连接,并尽可能长时间地重复使用。
在多个通知中保持与APN的连接;不要反复打开和关闭连接。 APN将快速连接和断开视为拒绝服务攻击。您应该保持连接处于打开状态,除非您知道它将在一段时间内处于空闲状态 - 例如,如果您每天只向用户发送一次通知,则可以每天使用新连接。
(Source)
但是,如果您向他们发送无效数据(例如带有无效设备令牌的通知),Apple将关闭连接,因此您的代码必须能够检测到并在必要时创建新连接。您还应该阅读Apple的错误回复,因为这些回复会在您重新打开连接后重新发送一些通知时通知您。
答案 1 :(得分:0)
这是Eran的一个很好的答案,但您也可以查看java-apns-gae
。
这是一个开源的Java APNS库,专为在Google App Engine上工作(和使用)而设计。