package Ping::PingServer; use Net::Ping; use Time::HiRes qw( time sleep ); use Jifty; BEGIN { Jifty->new }; sub ping { my ($class, $host) = @_; my $ping = Net::Ping->new(tcp => 1); while (1) { my $old_time = time; my $alive = $ping->ping($host); my $new_time = time; Ping::Event::Pong->new( { host => $host, alive => ($alive ? ($new_time - $old_time + 0.001) : 0), time => $new_time } )->publish; sleep 1; } exit; } 1;