1 | NAME |
1 | NAME |
2 | Net::XMPP2 - An implementation of the XMPP Protocol |
2 | Net::XMPP2 - An implementation of the XMPP Protocol |
3 | |
3 | |
4 | VERSION |
4 | VERSION |
5 | Version 0.02 |
5 | Version 0.04 |
6 | |
6 | |
7 | SYNOPSIS |
7 | SYNOPSIS |
8 | use Net::XMPP2::Connection; |
8 | use Net::XMPP2::Connection; |
9 | |
9 | |
10 | or: |
10 | or: |
… | |
… | |
70 | Net::SSLeay |
70 | Net::SSLeay |
71 | For SSL connections. |
71 | For SSL connections. |
72 | |
72 | |
73 | Net::DNS |
73 | Net::DNS |
74 | For SRV RR lookups. |
74 | For SRV RR lookups. |
|
|
75 | |
|
|
76 | Digest::SHA1 |
|
|
77 | For component authentication. |
75 | |
78 | |
76 | And yes, all these are essential for XMPP communication. Even though |
79 | And yes, all these are essential for XMPP communication. Even though |
77 | 'instant messaging' and 'presence' is a quite simple problem XMPP |
80 | 'instant messaging' and 'presence' is a quite simple problem XMPP |
78 | somehow was successful at making the task complicated enough to keep me |
81 | somehow was successful at making the task complicated enough to keep me |
79 | busy for a long time. But all of that time wasn't only for the |
82 | busy for a long time. But all of that time wasn't only for the |
… | |
… | |
83 | |
86 | |
84 | RELEASE NOTES |
87 | RELEASE NOTES |
85 | Here are some notes to the releases (release of this version is at top): |
88 | Here are some notes to the releases (release of this version is at top): |
86 | |
89 | |
87 | Version |
90 | Version |
|
|
91 | * 0.04 |
|
|
92 | After realizing that in band registration in Net::XMPP2::Ext was |
|
|
93 | already in in version 0.03 I finally had to implement it. |
|
|
94 | |
|
|
95 | While implementing in band registration I implemented XEP-0066: Out |
|
|
96 | of Band Data. You can now receive and send URLs from and to others. |
|
|
97 | See also Net::XMPP2::Ext::OOB. |
|
|
98 | |
|
|
99 | I also fixed some bugs in Net::XMPP2::Ext::Disco. |
|
|
100 | |
|
|
101 | * 0.03 |
|
|
102 | This release adds new events for attaching information to "XML" |
|
|
103 | stanzas that are in transmission to the server. See also the events |
|
|
104 | "send_*_hook" in Net::XMPP2::Connection. |
|
|
105 | |
|
|
106 | The event callbacks als don't have to return a true value anymore. |
|
|
107 | What the return values do depends on the event now. |
|
|
108 | |
|
|
109 | The highlight of this release is the implementation of XEP-0114, the |
|
|
110 | Jabber Component Protocol. |
|
|
111 | |
|
|
112 | It's possible to get a DOM tree from a Net::XMPP2::Node now and also |
|
|
113 | to receive the original parsed "XML" from it, which should enable |
|
|
114 | full access to the "XML" data that was received. This also allows |
|
|
115 | easy integration with other XML Perl modules. |
|
|
116 | |
|
|
117 | You can also set the initial priority of the presence in |
|
|
118 | Net::XMPP2::IM::Connection now. |
|
|
119 | |
|
|
120 | Please consult the Changes file for greater detail about bugfixes |
|
|
121 | and new features. |
|
|
122 | |
88 | * 0.02 |
123 | * 0.02 |
89 | This release adds lots of small improvements on the API (mostly new |
124 | This release adds lots of small improvements to the API (mostly new |
90 | events), and also some bugfixes here and there. The release also |
125 | events), and also some bugfixes here and there. The release also |
91 | comes with some new examples, you might want to take a look at the |
126 | comes with some new examples, you might want to take a look at the |
92 | "EXAMPLES" section. |
127 | "EXAMPLES" section. |
93 | |
128 | |
94 | As a highlight I also present the implementation of XEP-0004 (Data |
129 | As a highlight I also present the implementation of XEP-0004 (Data |
… | |
… | |
113 | enhancements along with some todo items killed from the TODO file. |
148 | enhancements along with some todo items killed from the TODO file. |
114 | |
149 | |
115 | TODO |
150 | TODO |
116 | There are still lots of items on the TODO list (see also the TODO file |
151 | There are still lots of items on the TODO list (see also the TODO file |
117 | in the distribution of Net::XMPP2). |
152 | in the distribution of Net::XMPP2). |
118 | |
|
|
119 | Sadly this module still misses some decent DOM implementation. Do you |
|
|
120 | know some decent DOM Level 2 implementation for Perl? (I considered |
|
|
121 | switchting to XML::LibXML but I somehow have more trust in the "expat" |
|
|
122 | XML parser, maybe someone wants to implement XML::LibXML based parsing |
|
|
123 | for me (and of course a DOM interface for Net::XMPP2::Node?) |
|
|
124 | |
153 | |
125 | Why (yet) another XMPP module? |
154 | Why (yet) another XMPP module? |
126 | The main outstanding feature of this module in comparison to the other |
155 | The main outstanding feature of this module in comparison to the other |
127 | XMPP (aka Jabber) modules out there is the support for AnyEvent. |
156 | XMPP (aka Jabber) modules out there is the support for AnyEvent. |
128 | AnyEvent permits you to use this module together with other I/O event |
157 | AnyEvent permits you to use this module together with other I/O event |
… | |
… | |
207 | These scripts are a bit hacky and quite complicated, but maybe it's |
236 | These scripts are a bit hacky and quite complicated, but maybe it's |
208 | of any value for someone. You might note "EVQ.pm" in samples which |
237 | of any value for someone. You might note "EVQ.pm" in samples which |
209 | is a module that handles request-throttling (You don't want to flood |
238 | is a module that handles request-throttling (You don't want to flood |
210 | the server and risk getting the admins attention :). |
239 | the server and risk getting the admins attention :). |
211 | |
240 | |
|
|
241 | samples/simple_component |
|
|
242 | This is a (basic) skeleton for a jabber component. |
|
|
243 | |
|
|
244 | samples/simple_oob_retriever |
|
|
245 | This is a simple out of band file transfer receiver bot. It uses |
|
|
246 | "curl" to fetch the files and also has the sample functionality of |
|
|
247 | sending a file url for someone who sends the bot a 'send <filename>' |
|
|
248 | message. |
|
|
249 | |
|
|
250 | samples/simple_register_example |
|
|
251 | This is a example script which allows you to register, unregister |
|
|
252 | and change your password for accounts. Execute it without arguments |
|
|
253 | for more details. |
|
|
254 | |
212 | For others, which the author might forgot or didn't want to list here |
255 | For others, which the author might forgot or didn't want to list here |
213 | see the "samples/" directory. |
256 | see the "samples/" directory. |
214 | |
257 | |
215 | More examples will be included in later releases, please feel free to |
258 | More examples will be included in later releases, please feel free to |
216 | ask the "AUTHOR" if you have any questions about the API. There is also |
259 | ask the "AUTHOR" if you have any questions about the API. There is also |
… | |
… | |
223 | Please note that I'm currently (July 2007) the only developer on this |
266 | Please note that I'm currently (July 2007) the only developer on this |
224 | project and I'm very busy with my studies in Computer Science in Summer |
267 | project and I'm very busy with my studies in Computer Science in Summer |
225 | 2007. If you want to ease my workload or want timely releases, please |
268 | 2007. If you want to ease my workload or want timely releases, please |
226 | send me patches instead of bug reports or feature requests. I won't |
269 | send me patches instead of bug reports or feature requests. I won't |
227 | forget the reports or requests if you can't or didn't send patches, but |
270 | forget the reports or requests if you can't or didn't send patches, but |
228 | it can take a long time until I get enough time to fix/implement them. |
271 | I can't gurantee immediate response. But I will of course try to |
|
|
272 | fix/implement them as soon as possible! |
229 | |
273 | |
230 | Also try to be as precise as possible with bug reports, if you can't |
274 | Also try to be as precise as possible with bug reports, if you can't |
231 | send a patch, it would be best if you find out which code doesn't work |
275 | send a patch, it would be best if you find out which code doesn't work |
232 | and tell me why. |
276 | and tell me why. |
233 | |
277 | |