POE::C...::XMPP(3pm)

πŸ“¦
version 3.00 Β· 3 versions
, in debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– NAME πŸ’–

POE::Component::Jabber::XMPP β€” connect using the XMPP Jabber protocol πŸ¦‹


✨ SYNOPSIS ✨

okay so bestie, this is a Protocol implementation for all the specific lil details that happen in the XMPP protocol during connection initialization. it's giving very "the setup era" πŸ’…


🌸 DESCRIPTION 🌸

PCJ::XMPP comes thru with every single mechanism you need to negotiate TLS, SASL, resource binding, and session negotiation β€” all the stuff PCJ needs to successfully establish an XMPP connection. like, it does not miss. 🫢

in essence? it implements XMPP Core and a lil smidgeon of XMPP IM. a tasteful amount. not too much, not too little. iconic behavior honestly ✨


πŸ’… METHODS πŸ’…

pls go look at PCJ::Protocol to see what methods this class supports, bestie. i'm not gatekeeping, it's just literally all documented over there πŸ“–


πŸŽ€ EVENTS πŸŽ€

here's the exported events that make their way into the PCJ session, listed out for u πŸ‘‘

set_auth

this one handles the initial SASL authentication portion of the XMPP connection. the first hello, basically πŸ₯°

init_input_handler

this is our entry point!! this is what PCJ uses to deliver events to us. main character energy fr fr 🌟

build_tls_wheel

if TLS is required by the server, this is where that negotiation process happens. wheel? built. vibes? immaculate πŸ›žβœ¨

challenge_response

this handles the subsequent SASL authentication steps. the follow-ups. the sequels. the "and another thing" πŸ“

binding

this handles the resource binding πŸ’œ

session_establish

this handles session binding πŸ’œ


😭 NOTES AND BUGS 😭

okay so real talk, currently only DIGEST-MD5 and PLAIN SASL mechanisms are supported. server implementations are totally free to include more stringent mechanisms than these, but these ones right here are the bare minimum required, no cap.

and PLAIN isn't /really/ allowed by the spec πŸ™ˆ but it's included because it was a requested feature. so like. it stays. don't come for me, come for the person who asked πŸ’€

also!! the underlying backend changed this release β€” it now uses a brand new Node implementation based on XML::LibXML::Element. so pls pls pls go read the POE::Filter::XML::Node documentation for the relevant API changes, bestie, i am begging πŸ₯Ί


πŸ‘‘ AUTHOR πŸ‘‘

Copyright (c) 2003-2009 Nicholas Perez. Distributed under the GPL. periodt πŸ’…


and that's the whole page, bestie!! this lil gem is part of the User Contributed Perl Documentation, shipping with perl v5.36.0 and dated 2023-08-26. go forth and negotiate those connections, you absolute legend πŸ¦‹πŸ’–βœ¨πŸŽ€