channelRead() — netty Function Reference
Architecture documentation for the channelRead() function in DefaultHttp2PushPromiseFrameTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD facc03cb_72c6_5e6c_d53a_96dfd538894c["channelRead()"] aea56fba_78b6_5518_b4b4_901b1cae9633["ServerHandler"] facc03cb_72c6_5e6c_d53a_96dfd538894c -->|defined in| aea56fba_78b6_5518_b4b4_901b1cae9633 d36dda17_5603_2e74_6899_d09d92687d79["channelRead()"] d36dda17_5603_2e74_6899_d09d92687d79 -->|calls| facc03cb_72c6_5e6c_d53a_96dfd538894c d36dda17_5603_2e74_6899_d09d92687d79["channelRead()"] facc03cb_72c6_5e6c_d53a_96dfd538894c -->|calls| d36dda17_5603_2e74_6899_d09d92687d79 style facc03cb_72c6_5e6c_d53a_96dfd538894c fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-http2/src/test/java/io/netty/handler/codec/http2/DefaultHttp2PushPromiseFrameTest.java lines 105–162
@Override
public void channelRead(final ChannelHandlerContext ctx, Object msg) throws Exception {
if (msg instanceof Http2HeadersFrame) {
final Http2HeadersFrame receivedFrame = (Http2HeadersFrame) msg;
Http2Headers pushRequestHeaders = new DefaultHttp2Headers();
pushRequestHeaders.path("/meow")
.method("GET")
.scheme("https")
.authority("localhost:5555");
// Write PUSH_PROMISE request headers
final Http2FrameStream newPushFrameStream = newStream();
Http2PushPromiseFrame pushPromiseFrame = new DefaultHttp2PushPromiseFrame(pushRequestHeaders);
pushPromiseFrame.stream(receivedFrame.stream());
pushPromiseFrame.pushStream(newPushFrameStream);
ctx.writeAndFlush(pushPromiseFrame).addListener(future -> {
contentMap.put(newPushFrameStream.id(), "Meow, I am Pushed via HTTP/2");
// Write headers for actual request
Http2Headers http2Headers = new DefaultHttp2Headers();
http2Headers.status("200");
http2Headers.add("push", "false");
Http2HeadersFrame headersFrame = new DefaultHttp2HeadersFrame(http2Headers, false);
headersFrame.stream(receivedFrame.stream());
ChannelFuture channelFuture = ctx.writeAndFlush(headersFrame);
// Write Data of actual request
channelFuture.addListener(f -> {
Http2DataFrame dataFrame = new DefaultHttp2DataFrame(
Unpooled.wrappedBuffer("Meow".getBytes()), true);
dataFrame.stream(receivedFrame.stream());
ctx.writeAndFlush(dataFrame);
});
});
} else if (msg instanceof Http2PriorityFrame) {
Http2PriorityFrame priorityFrame = (Http2PriorityFrame) msg;
String content = contentMap.get(priorityFrame.stream().id());
if (content == null) {
ctx.writeAndFlush(new DefaultHttp2GoAwayFrame(Http2Error.REFUSED_STREAM));
return;
}
// Write headers for Priority request
Http2Headers http2Headers = new DefaultHttp2Headers();
http2Headers.status("200");
http2Headers.add("push", "true");
Http2HeadersFrame headersFrame = new DefaultHttp2HeadersFrame(http2Headers, false);
headersFrame.stream(priorityFrame.stream());
ctx.writeAndFlush(headersFrame);
// Write Data of Priority request
Http2DataFrame dataFrame = new DefaultHttp2DataFrame(Unpooled.wrappedBuffer(content.getBytes()), true);
dataFrame.stream(priorityFrame.stream());
ctx.writeAndFlush(dataFrame);
}
}
Domain
Subdomains
Defined In
Calls
Called By
Source
Frequently Asked Questions
What does channelRead() do?
channelRead() is a function in the netty codebase, defined in codec-http2/src/test/java/io/netty/handler/codec/http2/DefaultHttp2PushPromiseFrameTest.java.
Where is channelRead() defined?
channelRead() is defined in codec-http2/src/test/java/io/netty/handler/codec/http2/DefaultHttp2PushPromiseFrameTest.java at line 105.
What does channelRead() call?
channelRead() calls 1 function(s): channelRead.
What calls channelRead()?
channelRead() is called by 1 function(s): channelRead.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free