【问题标题】:netty http file example: why ssl handler uses a different way to write messages?netty http 文件示例:为什么 ssl 处理程序使用不同的方式来编写消息?
【发布时间】:2016-01-15 03:54:35
【问题描述】:

示例代码: 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 的某些包装中读取更有效。
  • 你能把它作为答案发布吗,这个问题对于未来看到这个问题的人来说真的很有趣
  • 为什么大文件会破坏代码?
  • 我错了。起初我认为如果不使用 ChunkedInput,那么消息大小可能大于 Integer.MAX_VALUE。现在我深入研究代码,发现在这种情况下大小将设置为 0,并使用 FileChannel 的 transferTo() 方法。

标签: java http ssl netty


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-02-20
    • 2013-03-06
    • 2011-10-17
    • 1970-01-01
    • 2022-08-20
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多