Sockets 正确使用Appengine套接字
我正在使用sockets api与Apple推送通知服务进行通信,尽管我不确定我是否正确使用了它 我有一个初始化功能,可以在其中建立与APN的连接。但是,何时是对连接调用Close()的正确时间?还是让它开着,继续重复使用Sockets 正确使用Appengine套接字,sockets,google-app-engine,push-notification,apple-push-notifications,Sockets,Google App Engine,Push Notification,Apple Push Notifications,我正在使用sockets api与Apple推送通知服务进行通信,尽管我不确定我是否正确使用了它 我有一个初始化功能,可以在其中建立与APN的连接。但是,何时是对连接调用Close()的正确时间?还是让它开着,继续重复使用 谢谢 苹果特别要求您不要关闭与APN的连接,并尽可能长时间地重复使用 在多个通知中保持与APN的连接打开;不要反复打开和关闭连接。APNs将快速连接和断开连接视为拒绝服务攻击。您应该让连接保持打开状态,除非您知道它将在较长时间内处于空闲状态。例如,如果您每天只向用户发送一次通
谢谢 苹果特别要求您不要关闭与APN的连接,并尽可能长时间地重复使用 在多个通知中保持与APN的连接打开;不要反复打开和关闭连接。APNs将快速连接和断开连接视为拒绝服务攻击。您应该让连接保持打开状态,除非您知道它将在较长时间内处于空闲状态。例如,如果您每天只向用户发送一次通知,则可以每天使用新连接 ()
但是,如果您向他们发送无效数据(例如带有无效设备令牌的通知),苹果将关闭连接,因此您的代码必须能够检测到这一点,并在必要时创建新连接。您还应该阅读Apple的错误回复,因为这些回复会让您知道在您重新打开连接后是否应该重新发送一些通知。这是Eran的一个好答案,但您也可以查看
java apns gae
它是一个开源的JavaAPNS库,专门设计用于谷歌应用程序引擎(GoogleAppEngine)
答案是正确的,我只想补充一点,在GAE上让套接字长时间保持打开状态是很困难的:“套接字可能会在2分钟不活动后被回收;任何套接字操作都会使套接字再保持活动状态2分钟。”