Ruby: обнаружение тайм-аута соединения для TCPServer - PullRequest
1 голос
/ 02 сентября 2010

пытался понять, как реализовать обнаружение тайм-аута на моем TCP-сервере ruby.Главным образом потому, что иногда клиенты с нестабильным интернетом теряют соединение, и мне нужен мой сервер для его обнаружения.

Идея состоит в том, чтобы научить мой сервер обнаруживать, когда соединение не использовалось более 30 секунд, и прерывать его.Я пытался использовать тайм-аут, но это останавливает программу, поэтому мне нужно использовать что-то вроде простого таймера, который просто вернет целое число секунд, прошедших с момента активации указанного таймера.

Есть лиуже готовое решение для этого?Извините, если это глупый вопрос, просто поиск в Google привел меня в никуда.PS: здесь используется ruby ​​1.8.

Ответы [ 2 ]

0 голосов
/ 02 сентября 2010
0 голосов
/ 02 сентября 2010

Объект «Время» может сообщить количество прошедших секунд, сравнивая его с ранее созданными экземплярами. Рассмотрим:

require 'time'

t0 = Time.now
sleep(2)
t1 = Time.now
t1.to_f - t0.to_f # => 2.00059294700623

Таким образом, создав объект времени «последней передачи» и проверив его отличие от «сейчас», вы можете определить количество пройденных секунд и действовать соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...