Java 发送批量iOS通知时出现问题

Java 发送批量iOS通知时出现问题,java,ios,push-notification,payload,Java,Ios,Push Notification,Payload,我在为iOS设备发送批量通知时遇到问题,当我发送一些设备(1-20个左右)时,它可以正常工作,但当我必须发送批量通知(3000+)时,它会给我以下错误: [2017-04-27 15:12:07]错误(通知:347)-IOS:环境中的错误 通知-通信例外: javapns.communication.exceptions.CommunicationException:communication 异常:java.net.ConnectException:expire我找到了问题的解决方案,代码运行

我在为iOS设备发送批量通知时遇到问题,当我发送一些设备(1-20个左右)时,它可以正常工作,但当我必须发送批量通知(3000+)时,它会给我以下错误:

[2017-04-27 15:12:07]错误(通知:347)-IOS:环境中的错误 通知-通信例外: javapns.communication.exceptions.CommunicationException:communication
异常:java.net.ConnectException:expire我找到了问题的解决方案,代码运行良好,在与系统管理员交谈后,我们发现这是服务器配置的问题,因为根据的此链接,要能够发送通知,必须考虑以下几点:

要使用苹果推送通知服务(APNs),您的Mac和iOS 客户端需要与苹果服务器建立直接和持久的连接

以便:

如果您在防火墙后使用Wi-Fi,或在 蜂窝数据,连接到特定端口。你需要一个直接的,无刺激的 连接到这些端口上的APNs服务器:

  • 用于与APN通信的TCP端口5223
  • TCP端口2195,用于向APN发送通知
  • APNs反馈服务的TCP端口2196
  • 在设备激活期间需要TCP端口443,之后如果设备无法到达端口5223上的APN,则需要TCP端口443进行回退(仅在Wi-Fi上)
此外:

APNs服务器使用负载平衡,因此您的设备并不总是 连接到相同的公共IP地址以进行通知。最好是 让您的设备访问整个17.0.0.0/8地址上的这些端口 块,分配给Apple


因此,通过系统管理员配置防火墙以允许这些连接,所有问题都得到了解决。我希望它能帮助别人。

我找到了问题的解决方案,代码运行良好,在与系统管理员交谈后,我们发现这是服务器配置问题,因为根据的此链接,要能够发送通知,必须考虑以下几点:

要使用苹果推送通知服务(APNs),您的Mac和iOS 客户端需要与苹果服务器建立直接和持久的连接

以便:

如果您在防火墙后使用Wi-Fi,或在 蜂窝数据,连接到特定端口。你需要一个直接的,无刺激的 连接到这些端口上的APNs服务器:

  • 用于与APN通信的TCP端口5223
  • TCP端口2195,用于向APN发送通知
  • APNs反馈服务的TCP端口2196
  • 在设备激活期间需要TCP端口443,之后如果设备无法到达端口5223上的APN,则需要TCP端口443进行回退(仅在Wi-Fi上)
此外:

APNs服务器使用负载平衡,因此您的设备并不总是 连接到相同的公共IP地址以进行通知。最好是 让您的设备访问整个17.0.0.0/8地址上的这些端口 块,分配给Apple

因此,通过系统管理员配置防火墙以允许这些连接,所有问题都得到了解决。我希望它能帮助别人