一直试图了解如何对我的ruby TCP服务器实施超时检测。主要是因为有时互联网不稳定的客户失去连接,我需要我的服务器来检测它。
这个想法是教我的服务器检测连接何时静音超过30秒并中止它。我一直在尝试使用超时,但它会终止程序,所以我需要使用类似于简单计时器的东西,它只返回自激活所述计时器以来经过的整数秒。
是否有针对此的解决方案?对不起,如果这是一个愚蠢的问题,它只是谷歌搜索它导致我无处可去。 ps:在这里使用ruby 1.8。
答案 0 :(得分:0)
“时间”对象可以通过将其与先前创建的实例进行比较来报告过去的秒数。考虑:
require 'time'
t0 = Time.now
sleep(2)
t1 = Time.now
t1.to_f - t0.to_f # => 2.00059294700623
因此,通过创建“最后传输”时间对象,然后检查它与“现在”的差异,您可以确定传递的秒数并采取相应的行动。
答案 1 :(得分:0)