正确使用Appengine套接字

时间:2014-06-03 02:47:16

标签: sockets google-app-engine push-notification apple-push-notifications

我正在使用套接字api与Apple推送通知服务进行通信,虽然我不确定我是否正确使用它...

我有一个初始化函数,我建立了与APNS的连接。但是,何时是在连接上调用Close()的正确时间?或者我只是把它打开并继续重复使用它?

谢谢!

2 个答案:

答案 0 :(得分:1)

Apple明确要求您不要关闭与APNS的连接,并尽可能长时间地重复使用。

  

在多个通知中保持与APN的连接;不要反复打开和关闭连接。 APN将快速连接和断开视为拒绝服务攻击。您应该保持连接处于打开状态,除非您知道它将在一段时间内处于空闲状态 - 例如,如果您每天只向用户发送一次通知,则可以每天使用新连接。

Source

但是,如果您向他们发送无效数据(例如带有无效设备令牌的通知),Apple将关闭连接,因此您的代码必须能够检测到并在必要时创建新连接。您还应该阅读Apple的错误回复,因为这些回复会在您重新打开连接后重新发送一些通知时通知您。

答案 1 :(得分:0)

这是Eran的一个很好的答案,但您也可以查看java-apns-gae

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

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