检测迟到的回复

时间:2012-03-13 13:08:17

标签: java network-programming netty

我正在使用Netty 3.3.1。

我希望(1)中止在服务器端发送延迟响应,以及(2)拒绝来自客户端服务器的延迟响应。

我的工作流程如下。我从客户端发送请求,我希望服务器在30秒内响应。如果没有,我认为出了问题,我再次发送请求。 现在我担心客户会收到旧的回复,同时期待新的回复。我想检测一下(主要是在客户端,但如果服务器决定在30秒后不发送响应,那就太酷了。)

我可以使用Netty的IdleStateHandler / WriteTimeoutHandler / ReadTimeoutHandler吗?请注意,我不会断开频道,但会将其重新用于将来的请求/响应,并且当客户端通过同一频道重新发送请求时,不得在服务器上重置计时器。

我的第二个想法是为请求和回复添加时间戳。

OTOH,我复杂化了吗?甚至可以发生迟到的反应?

1 个答案:

答案 0 :(得分:1)

我认为处理这种问题的正确方法是使用某种“id”来查看它是否是“旧的”响应。