默认
打赏 发表评论 14
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
你好。
       我看了你的【基于Apns最新HTTP/2接口实现ios的高性能消息推送(服务端)篇】的文章,我按照你文章中给的例子,再main方法 中测试代码,出现了Stream closed before a reply was received。麻烦指导一下,万分感谢。
       测试工程代码地址:
               链接:https://pan.baidu.com/s/1CpVx0ojOYW2aQtOwH6tWmg
              提取码:qjse
      错误日志如下:
      [id: 0x55441210] RECEIVED: [12642: /172.16.1.251:53], DatagramDnsResponse(from: /172.16.1.251:53, to: /0:0:0:0:0:0:0:0:53271, 12642, QUERY(0), NoError(0), RD RA)
        DefaultDnsQuestion(api.sandbox.push-apple.com.akadns.net. IN AAAA)
        DefaultDnsRawRecord(akadns.net. 180 IN SOA 54B)
        DefaultDnsRawRecord(OPT flags:0 udp:4000 0B)
[DEBUG] 2019-05-17 13:25:30,679 method:io.netty.handler.ssl.SslHandler.setHandshakeSuccess(SslHandler.java:1746)
[id: 0x05db604f, L:/172.16.2.32:55833 - R:api.development.push.apple.com/17.188.166.29:443] HANDSHAKEN: TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
Failed to send push notification.
java.util.concurrent.ExecutionException: java.io.IOException: Stream closed before a reply was received
        at io.netty.util.concurrent.AbstractFuture.get(AbstractFuture.java:41)
        at com.test.IOSPush4.push(IOSPush4.java:103)
        at com.test.MainTest.main(MainTest.java:11)
Caused by: java.io.IOException: Stream closed before a reply was received
        at com.turo.pushy.apns.ApnsClientHandler.<clinit>(ApnsClientHandler.java:79)
        at com.turo.pushy.apns.ApnsClientHandler$ApnsClientHandlerBuilder.build(ApnsClientHandler.java:135)
        at com.turo.pushy.apns.ApnsClientHandler$ApnsClientHandlerBuilder.build(ApnsClientHandler.java:88)
        at io.netty.handler.codec.http2.AbstractHttp2ConnectionHandlerBuilder.buildFromCodec(AbstractHttp2ConnectionHandlerBuilder.java:420)
        at io.netty.handler.codec.http2.AbstractHttp2ConnectionHandlerBuilder.buildFromConnection(AbstractHttp2ConnectionHandlerBuilder.java:413)
        at io.netty.handler.codec.http2.AbstractHttp2ConnectionHandlerBuilder.build(AbstractHttp2ConnectionHandlerBuilder.java:381)
        at com.turo.pushy.apns.ApnsClientHandler$ApnsClientHandlerBuilder.build(ApnsClientHandler.java:142)
        at com.turo.pushy.apns.ApnsChannelFactory$1$1.operationComplete(ApnsChannelFactory.java:149)
        at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:502)
        at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:495)
        at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:474)
        at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:415)
        at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:540)
        at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:529)
        at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:101)
        at io.netty.handler.ssl.SslHandler.setHandshakeSuccess(SslHandler.java:1743)
        at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1412)
        at io.netty.handler.ssl.SslHandler.decodeNonJdkCompatible(SslHandler.java:1239)
        at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1276)
        at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502)
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:441)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:682)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:617)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:534)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run(Unknown Source)
[INFO ] 2019-05-17 13:25:31,112 method:com.test.IOSPush4.push(IOSPush4.java:169)
test pushMessage success. [共推送1个][成功0个],totalcost= 11921, pushCost=11016
评论 14
引用:JackJiang 发表于 2019-05-17 17:47
RainbowChat里一直用的是这个库,并没有遇到过你说的情况。

你这个问题是持续出现,还是偶尔出现?

是一直出现 。测试代码工程如下:      
     链接:https://pan.baidu.com/s/1CpVx0ojOYW2aQtOwH6tWmg
     提取码:qjse
能抽空帮我看看是哪里的问题吗?感谢!!
引用:JackJiang 发表于 2019-05-17 17:54
你有没有用ios的Push工具验证你的APNS证书这些有没有问题

验证了,证书没有问题
引用:JackJiang 发表于 2019-05-17 18:59
Pushy这个库,因为需要跟苹果的APNs服务进行TLS握手,它需要的库你都找对了吗?

比如,RainbowChat中 ...

非常感谢,已解决。就是少了fast-uuid-0.1.jar这个包。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部