【发布时间】:2013-05-02 20:43:37
【问题描述】:
使用 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]
【问题讨论】:
-
您确定邮件发送正常吗?是否所有消息都到达设备?此日志表明在尝试从 Apple 读取错误响应时抛出了
SocketException。除非是超时异常(在这种情况下没有问题),否则套接字可能已被 Apple 关闭,这表明您向 APNS 服务器发送了一些无效数据(最常见的原因是发送了无效的设备令牌)。 -
yes Eran,消息已发送。
-
您是发送一条消息还是多条消息?如果有多条消息,您是将它们全部发送到同一设备还是不同设备?如果有多个设备,是所有消息都到达这些设备还是只到达其中一部分?
-
在这种情况下,我将发送到一个设备并到达该设备。
-
那么你应该使用this one之类的问题来弄清楚如何禁用(或至少减少)日志输出。
标签: ios apple-push-notifications