1

notnoop / java-apnsを使用https://github.com/notnoop/java-apnsこのコードを使用してメッセージを送信しています。

try {
ApnsService service = APNS
.newService()
.withCert("myCertificates.p12",
"xxxxxxxxxx").withProductionDestination().build();

        String payload = APNS.newPayload().alertBody(messageObject.MsgText)
                .sound("default").badge(1).build();

        Iterator<String> vItr = messageObject.addresses.iterator();
        while (vItr.hasNext()) {
            String sent2Token = (String) (vItr.next());

            service.push(sent2Token, payload);
        }
        service.stop();

    } catch (NetworkIOException e) {
        System.out.println("client>> " + e.getMessage());
        e.printStackTrace();
    }

メッセージは正常に送信されますが、この出力を赤くする必要があります。スペースを消費してプログラムが遅くなる可能性があるためです....アドバイスをお願いします。

16:07:56.206 [Thread-4140] INFO c.n.apns.internal.ApnsConnectionImpl - Exception while waiting for error code
java.net.SocketException: Socket closed
at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.7.0_05]
at java.net.SocketInputStream.read(SocketInputStream.java:150) ~[na:1.7.0_05]
at java.net.SocketInputStream.read(SocketInputStream.java:121) ~[na:1.7.0_05]
at sun.security.ssl.InputRecord.readFully(InputRecord.java:312) ~[na:1.7.0_05]
at sun.security.ssl.InputRecord.read(InputRecord.java:350) ~[na:1.7.0_05]
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:893) ~[na:1.7.0_05]
at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:850) ~[na:1.7.0_05]
at sun.security.ssl.AppInputStream.read(AppInputStream.java:102) ~[na:1.7.0_05]
at java.io.InputStream.read(InputStream.java:101) ~[na:1.7.0_05]
at com.notnoop.apns.internal.ApnsConnectionImpl$1MonitoringThread.run(ApnsConnectionImpl.java:122) ~[server.jar:na]
4

1 に答える 1

1

1 年前の質問を復活させるには:

最近まで、java-apns は、apns サービスとの接続が閉じられたときに例外をログに記録していました。次の 2 つのことを行う必要があります。

  • その例外をログに記録しない java-apns 1.0.0 Beta2 (maven central で入手可能) を使用します。
  • 通常、SSL 接続のセットアップとクローズは少しコストがかかるため、サーバーの実行中はビルド済みの ApnsService を保持します。したがって、別の接続を長期間送信しないことが確実な場合にのみ、閉じてください。ApnsService は、Apple のプッシュ サーバーとのライブ接続を維持します。
于 2014-07-08T12:13:44.130 に答える