当前位置: 首页 > 知识库问答 >
问题:

如何防止服务器端读取超时处理程序在 Netty 中在服务器准备响应时触发?

高修伟
2023-03-14

由于Netty中的服务器端ReadTimeoutHandler不知道为什么客户端没有写入任何数据,所以当服务器仍在准备对接收到的客户端请求的响应时,它可能会抛出ReadTimeoutException(即,在客户端因为仍在等待服务器的回复而没有写入任何内容的时候)。

处理这种情况的最佳做法是什么?我目前正在考虑

  • 在我的处理程序中保留一个标志,告诉服务器在准备响应时忽略读取超时,
  • 在服务器准备响应时从管道中删除ReadTimeoutHandler,然后重新添加
  • 编写我自己的ReadTimeoutHandler版本,可以根据每个通道打开和关闭

在Netty中是否有处理这种情况的建议方法?

共有1个答案

梁兴文
2023-03-14

如果它被触发并且是预期的,我会忽略超时…我之前也做过的另一种方法是动态地从管道中添加和删除处理程序

 类似资料:
  • 有人知道netty服务器处理程序取消从web服务器接收数据的最佳方法吗?我有一个服务器处理程序,它将HttpRequests代理到web服务器。但是,当请求客户端取消请求时,我希望在不关闭服务器处理程序和web服务器之间的连接的情况下停止从web服务器接收服务器通道上的数据。 有谁知道我怎么才能做到这一点。你的答复将不胜感激。 非常感谢。

  • 问题内容: 我经常在Netty工作,但仍然有一个概念在暗示我,在教程等中找不到任何内容。首先,我确实了解Netty是异步的,但是客户端必须有一种方法来调用服务器,并且能够获得处理程序之外的响应。让我解释更多。 我有一个客户,如下图所示。并且请注意,我知道它是自举的,并且在每次调用时都会建立一个新的连接,这是为了使示例更小,更简洁。请忽略这个事实。 客户端.java 现在,我了解了如何获取服务器上的

  • 我有一个Tcp客户端,连接到一个旧的主机(52年),发送和接收来自它的请求和响应。 这是我的客户机的核心连接部分, 我试图用Netty重写下面的文章。通过使用以下教程作为参考。 http://tutorials.jenkov.com/netty/netty-tcp-client.html 我面临的问题是我能够连接到服务器,但不能从中读写。我正在使用一个来执行读写操作。 这是我的脾气暴躁的客户 处理

  • 我有一个在Netty中实现的服务器,它工作得很好,但现在我试图优化一个方面。 传入通道是多路复用的,即每个客户机进程都有许多线程,通过一个连接发送请求并读取响应到服务器。 谢谢, 安迪。

  • 在调用writeAndFlush()之后,我不知道如何从服务器检索响应;我该怎么办? 我也使用Netty 4.0.18.final

  • 当在远程服务器上运行脚本时,我需要防止远程服务器的nohup输出显示在ssh服务器上。 我正在命令行下面运行,以便在远程服务器上运行脚本。 但是当它运行时,它不可预测地显示“远程服务器脚本”中的命令的nohup输出。下面是脚本的节选,您可以看到该命令应该在后台运行。 我如何使它在远程服务器上的运行方式与在家庭服务器上的运行方式相同?我真的很感谢你的帮助。