AnyEvent-XMPP
view release on metacpan or search on metacpan
lib/AnyEvent/XMPP/Connection.pm view on Meta::CPAN
$self->_start_whitespace_ping;
});
}
sub _stop_whitespace_ping {
delete $_[0]->{_ws_ping};
}
=item B<jid>
After the stream has been bound to a resource the JID can be retrieved via this
method.
=cut
sub jid { $_[0]->{jid} }
=item B<features>
Returns the last received <features> tag in form of an L<AnyEvent::XMPP::Node> object.
=cut
sub features { $_[0]->{features} }
=item B<stream_id>
This is the ID of this stream that was given us by the server.
=cut
sub stream_id { $_[0]->{stream_id} }
=back
=head1 EVENTS
The L<AnyEvent::XMPP::Connection> class is derived from the L<Object::Event> class,
and thus inherits the event callback registering system from it. Consult the
documentation of L<Object::Event> about more details.
NODE: Every callback gets as it's first argument the L<AnyEvent::XMPP::Connection>
object. The further callback arguments are described in the following listing of
events.
These events can be registered on with C<reg_cb>:
=over 4
=item stream_features => $node
This event is sent when a stream feature (<features>) tag is received. C<$node> is the
L<AnyEvent::XMPP::Node> object that represents the <features> tag.
=item stream_pre_authentication
This event is emitted after TLS/SSL was initiated (if enabled) and before any
authentication happened.
The return value of the first event callback that is called decides what happens next.
If it is true value the authentication continues. If it is undef or a false value
authentication is stopped and you need to call C<authentication> later.
value
This event is usually used when you want to do in-band registration,
see also L<AnyEvent::XMPP::Ext::Registration>.
=item stream_ready => $jid
This event is sent if the XML stream has been established (and
resources have been bound) and is ready for transmitting regular stanzas.
C<$jid> is the bound jabber id.
=item error => $error
This event is generated whenever some error occured.
C<$error> is an instance of L<AnyEvent::XMPP::Error>.
Trivial error reporting may look like this:
$con->reg_cb (error => sub { warn "xmpp error: " . $_[1]->string . "\n" });
Basically this event is a collect event for all other error events.
=item stream_error => $error
This event is sent if a XML stream error occured. C<$error>
is a L<AnyEvent::XMPP::Error::Stream> object.
=item xml_parser_error => $error
This event is generated whenever the parser trips over XML that it can't
read. C<$error> is a L<AnyEvent::XMPP::Error::Parser> object.
=item tls_error
This event is emitted when a TLS error occured on TLS negotiation.
After this the connection will be disconnected.
=item sasl_error => $error
This event is emitted on SASL authentication error.
=item iq_auth_error => $error
This event is emitted when IQ authentication (XEP-0078) failed.
=item bind_error => $error, $resource
This event is generated when the stream was unable to bind to
any or the in C<new> specified resource. C<$error> is a L<AnyEvent::XMPP::Error::IQ>
object. C<$resource> is the errornous resource string or undef if none
was received.
The C<condition> of the C<$error> might be one of: 'bad-request',
'not-allowed' or 'conflict'.
Node: this is untested, I couldn't get the server to send a bind error
to test this.
( run in 0.698 second using v1.01-cache-2.11-cpan-39bf76dae61 )