netty http 文件示例:为什么 ssl 处理程序使用不同的方式来编写消息?

netty http file example: why ssl handler uses a different way to write messages?

示例代码: https://github.com/netty/netty/blob/4.1/example/src/main/java/io/netty/example/http/file/HttpStaticFileServerHandler.java

如果禁用 ssl,它将使用 FileRegion 而不是 ChunkedInput。这是为什么?大文件不会破坏代码吗?

谢谢。

原来是在禁用ssl时调用了FileChannel的transferTo()方法。该方法比从通道或 ByteBuf 的某些包装中读取更有效。在这种情况下,当请求传递到通道时,消息的大小将设置为 0。