下面列出了 io.netty.handler.codec.http2.Http2Stream # getProperty ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public int onDataRead(ChannelHandlerContext ctx, int streamId, ByteBuf data, int padding, boolean endOfStream) {
int processed = data.readableBytes() + padding;
Http2Stream http2Stream = connection().stream(streamId);
ByteBuf msg = http2Stream.getProperty(messageKey);
if (msg == null) {
msg = ctx.alloc().buffer();
http2Stream.setProperty(messageKey, msg);
}
final int dataReadableBytes = data.readableBytes();
msg.writeBytes(data, data.readerIndex(), dataReadableBytes);
if (endOfStream) {
// read cached http2 header from stream
Http2Headers headers = http2Stream.getProperty(headerKey);
handleRequest(ctx, streamId, headers, msg);
}
return processed;
}
/**
* Returns the server stream associated to the given HTTP/2 stream object.
*/
private NettyServerStream.TransportState serverStream(Http2Stream stream) {
return stream == null ? null : (NettyServerStream.TransportState) stream.getProperty(streamKey);
}
/**
* Gets the client stream associated to the given HTTP/2 stream object.
*/
private NettyClientStream.TransportState clientStream(Http2Stream stream) {
return stream == null ? null : (NettyClientStream.TransportState) stream.getProperty(streamKey);
}
private DataRefresher dataRefresher(Http2Stream stream) {
return (DataRefresher) stream.getProperty(dataRefresherKey);
}
/**
* Returns the server stream associated to the given HTTP/2 stream object.
*/
private NettyServerStream.TransportState serverStream(Http2Stream stream) {
return stream == null ? null : (NettyServerStream.TransportState) stream.getProperty(streamKey);
}
/**
* Gets the client stream associated to the given HTTP/2 stream object.
*/
private NettyClientStream.TransportState clientStream(Http2Stream stream) {
return stream == null ? null : (NettyClientStream.TransportState) stream.getProperty(streamKey);
}