… | |
… | |
3 | |
3 | |
4 | VERSION |
4 | VERSION |
5 | Version 0.01 |
5 | Version 0.01 |
6 | |
6 | |
7 | SYNOPSIS |
7 | SYNOPSIS |
8 | use Net::XMPP2; |
8 | use Net::XMPP2::Connection; |
9 | ... |
|
|
10 | |
9 | |
11 | FUNCTIONS |
10 | or: |
12 | init |
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 | |
13 | AUTHOR |
91 | AUTHOR |
14 | Robin Redeker, "<elmex at ta-sa.org>" |
92 | Robin Redeker, "<elmex at ta-sa.org>" |
15 | |
93 | |
16 | BUGS |
94 | BUGS |
17 | Please report any bugs or feature requests to "bug-net-xmpp2 at |
95 | Please report any bugs or feature requests to "bug-net-xmpp2 at |