DJabber...nt::Node(3)

πŸ“¦ version 0.85, in arch rolling

πŸŽ€ NAME πŸŽ€

Hii bestie πŸ’– welcome to the DJabber...nt::Node(3) page β€” User Contributed Perl Documentation, periodt. The class in the spotlight is DJabberd::Component::Node, which is literally a specialization of DJabberd::Agent::Node that knows it belongs to a component. Iconic.

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so this is an abstract class, and it’s a specialization of DJabberd::Agent::Node. The only difference between this class and its parent is that nodes represented by this class β€œknow” that they belong to a component and have a reference to that component stored. That’s the whole vibe check: component-aware node, no cap.

✨ SYNOPSIS ✨

Create your node class as a subclass of this class:

package MyPackage::DJabberd::MyNode;
use base DJabberd::Component::Node;

# Example of an agent that responds to incoming chat messages

sub handle_message {
    my ($self, $vhost, $stanza) = @_;

    my $response = $stanza->make_response();
    $response->set_raw("<body>Hello. I'm a software agent.</body>");
    $response->deliver($vhost);
}

The class can then be instantiated from inside a method in a DJabberd::Component instance:

# $self here is a DJabberd::Component object
my $node = MyPackage::DJabberd::MyNode->new(
    component => $self,
    nodename => "bob",
);

The above created instance will accept stanzas addressed to the node β€œbob” inside the domain owned by the given component.

🚨 Important caveat, bestie: it is not possible to directly use subclasses of this class as delivery plugins, since they must be associated with a component at runtime.

🌈 SEE ALSO 🌈

See also DJabberd::Agent::Node, DJabberd::Component.

Copyright 2007-2008 Martin Atkins

This module is part of the DJabberd distribution and is covered by the distribution's overall licence.


Cute sign-off: this page is from perl v5.42.0, dated 2025-12-14, and the page tag is DJabber...nt::Node(3). Bye bestie, mwah πŸ’…πŸ«Ά

πŸ“¦ where this page comes from