Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  ANYEVENT::XMPP::EXT::PING (3)

.ds Aq ’


AnyEvent::XMPP::Ext::Ping - Implementation of XMPP Ping XEP-0199



   use AnyEvent::XMPP::Ext::Ping;

   my $con = AnyEvent::XMPP::IM::Connection->new (...);
   $con->add_extension (my $ping = AnyEvent::XMPP::Ext::Ping->new);

   # this enables auto-timeout of a connection if it didnt answer
   # within 120 seconds to a ping with a reply
   $ping->enable_timeout ($con, 120);

   my $cl = AnyEvent::XMPP::Client->new (...);
   $cl->add_extension (my $ping = AnyEvent::XMPP::Ext::Ping->new);

   # this enables auto-timeout of newly created connections
   $ping->auto_timeout (120);

   $ping->ping ($con, ping_dest@server.tld, sub {
      my ($time, $error) = @_;
      if ($error) {
         # we got an error
      # $time is a float (seconds) of the rtt if you got Time::HiRes


This extension implements XEP-0199: XMPP Ping. It allows you to define a automatic ping timeouter that will disconnect dead connections (which didn’t reply to a ping after N seconds). See also the documentation of the enable_timeout method below.

It also allows you to send pings to any XMPP entity you like and will measure the time it took if you got Time::HiRes.


<B>new (%args)B> Creates a new ping handle.
<B>auto_timeout ($timeout)B> This method enables automatic connection timeout of new connections. It calls enable_timeout (see below) for every new connection that was connected and emitted a stream_ready event.

This is useful if you want connections that have this extension automatically timeouted. In particular this is useful with modules like AnyEvent::XMPP::Client (see also SYNOPSIS above).

<B>enable_timeout ($con, B>$timeout<B>)B> This enables a periodical ping on the connection $con. $timeout must be the seconds that the ping intervals last.

If the server which is connected via $con didn’t respond within $timeout seconds the connection $con will be disconnected.

Please note that there already is a basic timeout mechanism for dead TCP connections in AnyEvent::XMPP::Connection, see also the whitespace_ping_interval configuration variable for a connection there. It then will depend on TCP timeouts to disconnect the connection.

Use enable_timeout and auto_timeout only if you really feel like you need an explicit timeout for your connections.

<B>ping ($con, B>$dest<B>, B>$cb<B>, B>$timeout<B>)B> This method sends a ping request to $dest via the AnyEvent::XMPP::Connection in $con. If $dest is undefined the ping will be sent to the connected server. $cb will be called when either the ping timeouts, an error occurs or the ping result was received. $timeout is an optional timeout for the ping request, if $timeout is not given the default IQ timeout for the connection is the relevant timeout.

The first argument to $cb will be the seconds of the round trip time for that request (If you have Time::HiRes). If you don’t have Time::HiRes installed the first argument will be undef.

The second argument to $cb will be either undef if no error occured or a AnyEvent::XMPP::Error::IQ error object.

<B>ignore_pings ($bool)B> This method is mostly for testing, it tells this extension to ignore all ping requests and will prevent any response from being sent.


Robin Redeker, <elmex at>, JID: <elmex at>


Copyright 2007, 2008 Robin Redeker, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Search for    or go to Top of page |  Section 3 |  Main Index

perl v5.20.3 ANYEVENT::XMPP::EXT::PING (3) 2012-12-25

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.