1

我开发了一个与开发人员资料配合得很好的应用程序。但是,我现在正在生产中,PUSH 通知不再起作用。

我正在使用来自 notnoop的java-apns

该证书是正确的(正如我在本地笔记本电脑上尝试过的那样)。

但是,它在我的服务器中不起作用。我收到以下错误:

com.notnoop.exceptions.NetworkIOException: java.net.SocketException: Socket closed

我正在使用的代码如下:

    try{
         //Abrimos el servicio con el certificado
         ApnsService service =APNS.newService()
        .withCert("cert.p12", "password")
                .withProductionDestination()
        .build();
    String payload="";

    payload = APNS.newPayload().sound("default").badge(1).localizedKey("ShoutPushStringWithData").localizedArguments(pUserName, pMessage).build();
    String token = pPushURI;            
    service.push(token, payload);
    } catch(RuntimeIOException | InvalidSSLConfig | NetworkIOException e){
        WebServiceLogger.getInstance().log(Level.INFO, "[ERROR PUSH]: "+ e);
    }

我究竟做错了什么?我该如何解决?

谢谢,伊拜

4

2 回答 2

3

我遇到了同样的问题和消息,最后发现问题是我使用了证书?为沙盒生成,我的代码将 APNS 服务创建为 .withProductionDestination().build() 我将代码更改为 .withSandboxDestination().build() 并且现在可以使用

于 2014-06-26T12:36:58.093 回答
1

终于解决了。使用 java-apns 完成这项工作是不可能的,我不知道为什么。

我已决定使用 javapns,尽管它并不容易,但它已得到修复。

重要的一点是,Certificate.p12 必须只是从 Apple 生产 iOS 推送服务导出的一个,而不是我在其他帖子中读到的从分发和生产 iOS 推送服务导出的那个。

祝你好运!

于 2012-09-26T15:26:59.123 回答