AnyEvent-XMPP
view release on metacpan or search on metacpan
NAME
AnyEvent::XMPP - An implementation of the XMPP Protocol
VERSION
Version 0.55
SYNOPSIS
use AnyEvent::XMPP::Connection;
or:
use AnyEvent::XMPP::IM::Connection;
or:
use AnyEvent::XMPP::Client;
DESCRIPTION
This is the head module of the AnyEvent::XMPP XMPP client protocol (as
described in RFC 3920 and RFC 3921) framework.
AnyEvent::XMPP::Connection is a RFC 3920 conforming "XML" stream
implementation for clients, which handles TCP connect up to the resource
binding. And provides low level access to the XML nodes on the XML
stream along with some high level methods to send the predefined XML
stanzas.
AnyEvent::XMPP::IM::Connection is a more high level module, which is
derived from AnyEvent::XMPP::Connection. It handles all the instant
messaging client functionality described in RFC 3921.
AnyEvent::XMPP::Client is a multi account client class. It manages
connections to multiple XMPP accounts and tries to offer a nice high
level interface to XMPP communication.
For a list of "Supported extensions" see below.
There are also other modules in this distribution, for example:
AnyEvent::XMPP::Util, AnyEvent::XMPP::Writer, AnyEvent::XMPP::Parser and
those I forgot :-) Those modules might be helpful and/or required if you
want to use this framework for XMPP.
See also AnyEvent::XMPP::Writer for a discussion about the brokenness of
XML in the XMPP specification.
If you have any questions or seek for help look below under "SUPPORT".
REQUIREMENTS
One of the major drawbacks I see for AnyEvent::XMPP is the long list of
required modules to make it work.
AnyEvent
For the I/O events, timers, TCP, TLS, DNS and I/O buffering.
Object::Event
The former AnyEvent::XMPP::Event module has been outsourced to the
Object::Event module to provide a more generic way for more other
modules to register and call event callbacks.
XML::Writer
For writing "XML".
XML::Parser::Expat
For parsing partial "XML" stuff.
MIME::Base64
For SASL authentication
Authen::SASL
For SASL authentication
Net::LibIDN
For stringprep profiles to handle JIDs.
Digest::SHA
For component authentication and old-style authentication.
And yes, all these are essential for XMPP communication. Even though
'instant messaging' and 'presence' is a quite simple problem XMPP
somehow was successful at making the task complicated enough to keep me
busy for a long time. But all of that time wasn't only for the
technology required to get it started, mostly it was for all the quirks,
hacks and badly applied "XML" in the protocol which complicated the
matter.
RELEASE NOTES
Here are some notes to the last releases (release of this version is at
top):
Version
* 0.55
Bugfixes, see Changes file.
* 0.54
Add AnyEvent::XMPP::Ext::Receipts, small bugfixes, see Changes file.
* 0.53
Maintenance release. Patches for various small issues, see Changes
file.
* 0.52
Maintenance release.
* 0.51
Maintenance release. Added a patch which fixes Object::Event
compatibility and another fix w.r.t. memory leak in the parser. And
added the original node to AnyEvent::XMPP::IM::Message (thanks go to
mons@cpan.org).
NOTE: Version 0.6 of AnyEvent::XMPP will be API incompatible! If you
are already eager to try the new version out contact me!
* 0.5
( run in 0.637 second using v1.01-cache-2.11-cpan-39bf76dae61 )