List of usage examples for io.netty.handler.codec.http2 Http2Error REFUSED_STREAM
Http2Error REFUSED_STREAM
To view the source code for io.netty.handler.codec.http2 Http2Error REFUSED_STREAM.
Click Source Link
From source file:com.turo.pushy.apns.ApnsClientHandler.java
License:Open Source License
@Override public void onRstStreamRead(final ChannelHandlerContext context, final int streamId, final long errorCode) { if (errorCode == Http2Error.REFUSED_STREAM.code()) { // This can happen if the server reduces MAX_CONCURRENT_STREAMS while we already have notifications in // flight. We may get multiple RST_STREAM frames per stream since we send multiple frames (HEADERS and // DATA) for each push notification, but we should only get one REFUSED_STREAM error; the rest should all be // STREAM_CLOSED. this.retryPushNotificationFromStream(context, streamId); }/*from w ww . j ava 2 s .c o m*/ }
From source file:io.grpc.netty.NettyClientHandler.java
License:Apache License
/** * Handler for an inbound HTTP/2 RST_STREAM frame, terminating a stream. *//*from www . java 2s . c o m*/ private void onRstStreamRead(int streamId, long errorCode) { NettyClientStream.TransportState stream = clientStream(connection().stream(streamId)); if (stream != null) { PerfMark.event("NettyClientHandler.onRstStreamRead", stream.tag()); Status status = GrpcUtil.Http2Error.statusForCode((int) errorCode) .augmentDescription("Received Rst Stream"); stream.transportReportStatus(status, errorCode == Http2Error.REFUSED_STREAM.code() ? RpcProgress.REFUSED : RpcProgress.PROCESSED, false /*stop delivery*/, new Metadata()); if (keepAliveManager != null) { keepAliveManager.onDataReceived(); } } }
From source file:io.grpc.netty.NettyClientHandlerTest.java
License:Apache License
@Test public void receivedResetWithRefuseCode() throws Exception { ChannelFuture future = enqueue(newCreateStreamCommand(grpcHeaders, streamTransportState)); channelRead(rstStreamFrame(streamId, (int) Http2Error.REFUSED_STREAM.code())); verify(streamListener).closed(any(Status.class), eq(REFUSED), any(Metadata.class)); assertTrue(future.isDone());/*from w w w . jav a2 s . com*/ }
From source file:org.wso2.carbon.http2.transport.util.Http2ClientHandler.java
License:Open Source License
/** * Read respond frames from netty channel and pass to ResponseReceiver * * @param ctx//from w ww .j ava 2 s .c o m * @param msg */ @Override public void channelRead(ChannelHandlerContext ctx, Object msg) { if (msg instanceof Http2HeadersFrame) { Http2HeadersFrame frame = (Http2HeadersFrame) msg; if (!sentRequests.containsKey(frame.streamId())) { return; } receiver.onHeadersFrameRead(frame, sentRequests.get(frame.streamId())); if (frame.isEndStream()) { sentRequests.remove(frame.streamId()); } } else if (msg instanceof Http2DataFrame) { Http2DataFrame frame = (Http2DataFrame) msg; if (!sentRequests.containsKey(frame.streamId())) { return; } receiver.onDataFrameRead(frame, sentRequests.get(frame.streamId())); if (frame.isEndStream()) { sentRequests.remove(frame.streamId()); } } else if (msg instanceof Http2PushPromiseFrame) { Http2PushPromiseFrame frame = (Http2PushPromiseFrame) msg; if (!sentRequests.containsKey(frame.streamId())) { return; } MessageContext prevRequest = sentRequests.get(frame.streamId()); //if the inbound is not accept push requests reject them if (!receiver.isServerPushAccepted()) { writer.writeRestSreamRequest(frame.getPushPromiseId(), Http2Error.REFUSED_STREAM); return; } sentRequests.put(frame.getPushPromiseId(), prevRequest); receiver.onPushPromiseFrameRead(frame, prevRequest); } else if (msg instanceof Http2Settings) { setChContext(ctx); receiver.onUnknownFrameRead(msg); } else if (msg instanceof Http2GoAwayFrame) { receiver.onUnknownFrameRead(msg); } else if (msg instanceof Http2ResetFrame) { if (sentRequests.containsKey(((Http2ResetFrame) msg).streamId())) { sentRequests.remove(((Http2ResetFrame) msg).streamId()); } receiver.onUnknownFrameRead(msg); } else { receiver.onUnknownFrameRead(msg); } }