logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

AnyEvent::XMPP::Component - "XML" stream that implements the XEP-0114

Author

       Robin Redeker, "<elmex at ta-sa.org>", JID: "<elmex at jabber.org>"

Description

       This module represents a XMPP connection to a server that authenticates as component.

       This module is a subclass of "AnyEvent::XMPP::Connection" and inherits all methods.  For example "reg_cb"
       and the stanza sending routines.

       For additional events that can be registered to look below in the EVENTS section.

       Please note that for component several functionality in AnyEvent::XMPP::Connection might have no effect
       or not the desired effect. Basically you should use the AnyEvent::XMPP::Component as component and only
       handle events the handle with incoming data. And only use functions that send stanzas.

       No effect has the event "stream_pre_authentication" and the "authenticate" method of
       AnyEvent::XMPP::Connection, because those handle the usual SASL or iq-auth authentication. "Jabber"
       components have a completly different authentication mechanism.

       Also note that the support for some XEPs in AnyEvent::XMPP::Ext is just thought for client side usage, if
       you miss any functionaly don't hesitate to ask the author or send him a patch! (See AnyEvent::XMPP for
       contact information).

Events

       These additional events can be registered on with "reg_cb":

       NOTE:  The  event  "stream_pre_authentication"  should  _not_  be  handled and just ignored. Don't attach
       callbacks to it!

       session_ready
           This event indicates that the component has connected successfully and can now be  used  to  transmit
           stanzas.

Methods

new(%args)
           This is the constructor. It takes the same arguments as the constructor of AnyEvent::XMPP::Connection
           along with a few others:

           NOTE:  Please  note  that some arguments that AnyEvent::XMPP::Connection usually takes have no effect
           when using this class. (That would be the 'username', 'password', 'resource' and 'jid' arguments  for
           example.)

           secret => $secret
               $secret is the secret that will be used for authentication with the server.

Name

       AnyEvent::XMPP::Component - "XML" stream that implements the XEP-0114

Synopsis

          use AnyEvent::XMPP::Component;

          my $con = AnyEvent::XMPP::Component->new (
                       domain => 'chat.jabber.org'
                       host   => 'jabber.org',
                       port   => 5347,
                       secret => 'insecurepasswordforthehackers'
                    );
          $con->reg_cb (session_ready => sub { ... });
          $con->connect;

See Also