1 |
elmex |
1.1 |
NAME |
2 |
|
|
Net::XMPP2 - An implementation of the XMPP Protocol |
3 |
|
|
|
4 |
|
|
VERSION |
5 |
|
|
Version 0.01 |
6 |
|
|
|
7 |
|
|
SYNOPSIS |
8 |
elmex |
1.2 |
use Net::XMPP2::Connection; |
9 |
|
|
|
10 |
|
|
or: |
11 |
|
|
|
12 |
|
|
use Net::XMPP2::IM::Connection; |
13 |
|
|
|
14 |
|
|
DESCRIPTION |
15 |
|
|
This is the head module of the Net::XMPP2 XMPP client protocol (as |
16 |
|
|
described in RFC 3920 and RFC 3921) framework. |
17 |
|
|
|
18 |
|
|
Net::XMPP2::Connection is a RFC 3920 conformant "XML" stream |
19 |
|
|
implementation for clients, which handles tcp connect up to the resource |
20 |
|
|
binding. And provides low-level access to the XML nodes on the XML |
21 |
|
|
stream along with some high level methods to send the predefined XML |
22 |
|
|
stanzas. |
23 |
|
|
|
24 |
|
|
Net::XMPP2::IM::Connection is a more highlevel module, which is derived |
25 |
|
|
from Net::XMPP2::Connection. It handles all the instant messaging client |
26 |
|
|
functionality described in RFC 3921. |
27 |
|
|
|
28 |
|
|
For a list of "Supportet extensions" see below. |
29 |
|
|
|
30 |
|
|
There are also other modules in this distribution, for example: |
31 |
|
|
Net::XMPP2::Util, Net::XMPP2::Writer, Net::XMPP2::Parser and those i |
32 |
|
|
forgot :-) Those modules might be helpful and/or required if you want to |
33 |
|
|
use this framework for XMPP. |
34 |
|
|
|
35 |
|
|
See also Net::XMPP2::Writer for a discussion about the brokeness of XML |
36 |
|
|
in the XMPP specification. |
37 |
|
|
|
38 |
|
|
Why (yet) another XMPP module? |
39 |
|
|
The main outstanding feature of this module in comparsion to the other |
40 |
|
|
XMPP (aka Jabber) modules out there is the support for AnyEvent. |
41 |
|
|
AnyEvent permits you to use this module together with other I/O event |
42 |
|
|
based programs and libraries (ie. Gtk2 or Event). |
43 |
|
|
|
44 |
|
|
The other modules could often only be integrated in those applications |
45 |
|
|
or librarys by using threads. I decided to write this module because i |
46 |
|
|
think CPAN lacks an event based XMPP module. Threads are unfortunately |
47 |
|
|
not an alternative in Perl at the moment due the limited threading |
48 |
|
|
functionality they provide and the global speed hit. I also think that a |
49 |
|
|
simple event based I/O framework might be a bit easier to handle than |
50 |
|
|
threads. |
51 |
|
|
|
52 |
|
|
Another thing was that I didn't like the APIs of the other modules. In |
53 |
|
|
Net::XMPP2 I try to provide low level modules for speaking XMPP as |
54 |
|
|
defined in RFC 3920 and RFC 3921 (see also Net::XMPP2::Connection and |
55 |
|
|
Net::XMPP2::IM::Connection). But I also try to provide a high level API |
56 |
|
|
for easier usage for instant messaging tasks and clients. |
57 |
|
|
|
58 |
|
|
A note about TLS |
59 |
|
|
This module also supports TLS, as the specification of XMPP requires an |
60 |
|
|
implementation to support TLS. |
61 |
|
|
|
62 |
|
|
There are maybe still some bugs in the handling of TLS in |
63 |
|
|
Net::XMPP2::Connection. So keep an eye on TLS with this module. If you |
64 |
|
|
encounter any problems it would be very helpful if you could debug them |
65 |
|
|
or at least send me a detailed report on how to reproduce the problem. |
66 |
|
|
|
67 |
|
|
(As I use this module myself I don't expect TLS to be completly broken, |
68 |
|
|
but it might break under different circumstances than I have here. Those |
69 |
|
|
circumstances might be a different load of data pumped through the TLS |
70 |
|
|
connection.) |
71 |
|
|
|
72 |
|
|
I mainly expect problems where aviable data isn't properly read from the |
73 |
|
|
socket or written to it. You might want to take a look at the |
74 |
|
|
"debug_send" and "debug_recv" events in Net::XMPP2::Connection. |
75 |
|
|
|
76 |
|
|
Supportet extensions |
77 |
|
|
This is the list of supported XMPP extensions: |
78 |
|
|
|
79 |
|
|
XEP-0086 - Error Condition Mappings |
80 |
|
|
"A mapping to enable legacy entities to correctly handle errors from XMPP-aware entities." |
81 |
|
|
|
82 |
|
|
This extension will enable sending of the old error codes when |
83 |
|
|
generating a stanza error with for example: |
84 |
|
|
Net::XMPP2::Writer::write_error_tag |
85 |
|
|
|
86 |
|
|
XEP-0077 - In-Band Registration |
87 |
|
|
This extension lets you register new accounts "in-band". To use this |
88 |
|
|
look at the description of the "register" option to the "new" method |
89 |
|
|
of Net::XMPP2::Connection. |
90 |
elmex |
1.1 |
|
91 |
|
|
AUTHOR |
92 |
|
|
Robin Redeker, "<elmex at ta-sa.org>" |
93 |
|
|
|
94 |
|
|
BUGS |
95 |
|
|
Please report any bugs or feature requests to "bug-net-xmpp2 at |
96 |
|
|
rt.cpan.org", or through the web interface at |
97 |
|
|
<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-XMPP2>. I will be |
98 |
|
|
notified, and then you'll automatically be notified of progress on your |
99 |
|
|
bug as I make changes. |
100 |
|
|
|
101 |
|
|
SUPPORT |
102 |
|
|
You can find documentation for this module with the perldoc command. |
103 |
|
|
|
104 |
|
|
perldoc Net::XMPP2 |
105 |
|
|
|
106 |
|
|
You can also look for information at: |
107 |
|
|
|
108 |
|
|
* AnnoCPAN: Annotated CPAN documentation |
109 |
|
|
<http://annocpan.org/dist/Net-XMPP2> |
110 |
|
|
|
111 |
|
|
* CPAN Ratings |
112 |
|
|
<http://cpanratings.perl.org/d/Net-XMPP2> |
113 |
|
|
|
114 |
|
|
* RT: CPAN's request tracker |
115 |
|
|
<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Net-XMPP2> |
116 |
|
|
|
117 |
|
|
* Search CPAN |
118 |
|
|
<http://search.cpan.org/dist/Net-XMPP2> |
119 |
|
|
|
120 |
|
|
ACKNOWLEDGEMENTS |
121 |
|
|
COPYRIGHT & LICENSE |
122 |
|
|
Copyright 2007 Robin Redeker, all rights reserved. |
123 |
|
|
|
124 |
|
|
This program is free software; you can redistribute it and/or modify it |
125 |
|
|
under the same terms as Perl itself. |
126 |
|
|
|