我有一个用 Netty 实现的 HTTP 服务器。将消息推送到浏览器需要长轮询连接。在大多数情况下,服务器不会尝试关闭连接。
在 TCP 会话中,如果任何一方想要关闭连接,它会向另一方发送一个 FIN 数据包。如果服务器没有收到来自客户端的 FIN,例如 1) 用户有硬网络故障或 2) 有人试图攻击服务器,是否保证 Netty 服务器会收到超时(或其他某种)在给定时间后的异常?
如果是真的,我不需要在我的通道管道中添加一个 Read/WriteTimeoutHandler,它会在定时器触发超时时关闭通道。无论哪种方式我都必须关闭通道,否则我会泄漏资源。