java - APNS - 发送消息失败

标签 java ios push-notification apple-push-notifications

我遇到了 APNS 的奇怪问题。我使用 com.notnoop.apns 库,当我尝试将相同的消息推送到 40 台设备时,我得到了

ApnsConnectionImpl : Failed to send message 
com.notnoop.apns.EnhancedApnsNotification@be443877... trying again
java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
...

一切顺利,当我尝试将相同的消息推送到 4、10 甚至 15 台设备时。

我尝试使用推送 token 将集合从 40 拆分为 4*10,并将此通知推送到 foreach 中,但第二次尝试时我遇到了同样的问题。

这是带有 push 方法的代码:

//prepared collection and message
private void sendMessage(Collection<String> ids, PayloadBuilder message) {
try{
    service.push(ids, message.build);       
}catch(Exception e) {
    logger.debug("APNS ERROR : size of collection - " + ids.size());
}

服务的构造函数:

  try {
        service = APNS.newService()
                .withCert(pathToCertificate, certificatePasswd)
                .withProductionDestination()
                .build();
    } catch(IOException e){
        e.printStackTrace();
    }

我用不同的推送 token 集合(集合随机从 1 到 40 个 token )使用这种方法 10 次,有一次我遇到了这个异常(所有 token 都是正确的)。有没有可能被APNS无缘无故重置连接?如果我失去联系,该怎么办?重新连接并尝试将一次丢失的消息推送到设备?请帮助,我没有想法。

最佳答案

我推荐 Java PNS 库:http://code.google.com/p/javapns/ .我在我的一个项目中使用过它,效果很好。

关于java - APNS - 发送消息失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14968718/

相关文章:

java - 运行logback源码示例,IDEA提示找不到类GafferConfigurator

iphone - 防止 ASIHTTPRequest 遵循 HTTP 303 参见其他

ios - Xcode 5 应用程序提交问题

java - 我在 Netbeans 中对 Integer 进行了不必要的装箱

java - Spring Boot中使用nginx代理websocket时出现CORS错误

java - 在 DispatcherServlet 中未找到名称为 'HelloWeb' 的 URI [/HelloWeb/] 的 HTTP 请求映射?

android - Parse.com 禁用推送通知通知

ios - 无法到达 XCTestCase 中的断点

Android FCM 徽章在后台不工作

ios - 使用 Apple entreprise 应用程序的 Apple 推送通知未获取设备 token