Preparing the RSS event function and element handlers
Jabber::Connection offers a simple way of having a
function execute at regular intervals. It avoids the need for setting
and resetting alarms. It is the register_beat()
function:
debug("registering RSS beat");
$c->register_beat(1800, \&rss);
Calling the
register_beat() method takes two arguments.
The first argument represents the interval, in seconds. The second is a reference
to the function that should be invoked at each interval. Here, we’re
saying we want the rss() function called every
30 minutes (1800 seconds).
Most of the traffic relating to the component will be the headline
messages emanating from it.
However, we are expecting incoming IQ elements, particularly for
registration in the jabber:iq:register namespace.
We’ve also already mentioned that it’s customary for components
to honor basic “administrative” queries such as version checks. So the
list of calls to the register_handler() method
here reflects what we want to offer in terms of handling these IQ
elements:
debug("registering IQ handlers");
$c->register_handler('iq',\&iq_register);
$c->register_handler('iq',\&iq_version);
$c->register_handler('iq',\&iq_browse);
$c->register_handler('iq',\&iq_notimpl);
Whereas with Net::Jabber’s
SetCallBacks() function and with
Jabberpy’s setIqHandler() method
we specify a single function to act as a handler for incoming
<iq/> elements, we can specify as
many handlers as we want for each element type with the
register_handler() ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access