RamosLi / dbay-apns-for-java

High performance Java client for APNS(Apple Push Notification Service)
Apache License 2.0
238 stars 152 forks source link

请问这个警告需要处理嘛? #4

Open sunzhaoyang opened 10 years ago

sunzhaoyang commented 10 years ago

每次也能发送成功,但总会报下面这个异常。请问是什么意思? SEVERE: dev-1 Socket closed java.net.SocketException: Socket closed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:422) at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:460) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:863) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:820) at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75) at java.io.InputStream.read(InputStream.java:82) at com.dbay.apns4j.impl.ApnsConnectionImpl$1.run(ApnsConnectionImpl.java:258) at java.lang.Thread.run(Thread.java:695)

sunzhaoyang commented 10 years ago

先行谢过哈~

RamosLi commented 10 years ago

产生这个异常的原因是这样的:一条连接建立后,被关闭了,可能是超时关闭,或者是调用了service.shutdown主动关闭,又或者其他原因,但此时仍然有一个线程在这条连接上读取数据,所以就打出了这样的异常。但不影响正常使用,所以可以不用处理。 看起来,只打一行log不打堆栈似乎更好些。否则大家一看到堆栈就会认为报错了,我再仔细想想哈

sunzhaoyang commented 10 years ago

哇噻,回复好及时啊。那我再多问个,嘿嘿。自带的deamon,我run起来以后,可以正常发送推送,但是feedback 总是返回空是几个意思啊???

icyframe commented 10 years ago

为空说明你发送成功了,发送失败的时候才有返回值。 On 18 Apr 2014 13:40, "sunzhaoyang" notifications@github.com wrote:

哇噻,回复好及时啊。那我再多问个,嘿嘿。自带的deamon,我run起来以后,可以正常发送推送,但是feedback 总是返回空是几个意思啊???

— Reply to this email directly or view it on GitHubhttps://github.com/RamosLi/dbay-apns-for-java/issues/4#issuecomment-40788324 .

RamosLi commented 10 years ago

水果公司的文档里已经说的比较清楚了,还是以官方文档为准吧https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html#//apple_ref/doc/uid/TP40008194-CH101-SW3

sunzhaoyang commented 10 years ago

额。。。好吧。这几个问题低级了。嘿嘿,刚写了两周的java,多谢多谢!

fengsong811 commented 10 years ago

我每次推送消息都会报这样的异常,为什么?多谢多谢

fengsong811 commented 10 years ago

我每次推送消息都会报这样的异常,为什么?多谢多谢

fengsong811 commented 10 years ago

我每次推送消息都会报这样的异常,为什么?多谢多谢!

RamosLi commented 10 years ago

你是不是每次发完都shutdown了?

vanyk commented 10 years ago

请教一个问题,使用这个库的时候,发现经常会连接被重置 [Thread-22] - pro-5 Connection reset java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:196) at java.net.SocketInputStream.read(SocketInputStream.java:122) at sun.security.ssl.InputRecord.readFully(InputRecord.java:442) at sun.security.ssl.InputRecord.read(InputRecord.java:480) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927) at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:884) at sun.security.ssl.AppInputStream.read(AppInputStream.java:102) at java.io.InputStream.read(InputStream.java:101) at dbay.apns4j.impl.ApnsConnectionImpl$1.run(ApnsConnectionImpl.java:240) at java.lang.Thread.run(Thread.java:745)

vanyk commented 10 years ago

单个用户发push貌似还是蛮正常,但是需要推送的push消息一多,经常就丢消息了,就经常看到Connection reset

vanyk commented 10 years ago

还有下面这个循环,如果socket上读不到数据,会把cpu资源一直抢占 while (true) { try { size = socketIs.read(res); if (size > 0 || size == -1) { // break, when something was read or there is no data any more break; } } catch (SocketTimeoutException e) { // There is no data. Keep reading. } }

vanyk commented 10 years ago

Connection reset的问题,可以给点指导意见吗?先谢过了哈