---
name: "DJabberd::Agent::Node"
section: "3pm"
platform: "linux"
package: "perl-djabberd"
version: "0.85-14"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/DJabberd::Agent::Node"
---

# DJabberd::Agent::Node(3pm)

Abstract class for an agent that handles a specific node

## NAME

DJabberd::Agent::Node - Abstract class for an agent that handles a specific node

## SYNOPSIS

```
    package MyPackage::DJabberd::MyNode;
    use base DJabberd::Agent::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);
    }
```

This class provides a parent class for agents which recieve stanzas addressed to a particular nodename within a domain.

Such an agent is often referred to as a "Bot". A higher-level API for implementing "chat bots" is also provided in DJabberd::Bot.

## USAGE

This class is a specialization of DJabberd::Agent. In most cases, users of this class will use the API exposed by DJabberd::Agent. However, there is some special behaviour to note and some additional methods that are not part of the basic agent class.

### handles\_destination($self, $to\_jid, $vhost)

This class provides an overriden version of this method which responds with a true value if and only if the domain and the nodename of the destination JID match those that are handled by this instance.

### vcard($self, $requester\_jid)

The overriden version of this method will return a vCard where the full name is set to the nodename of this instance. Subclasses will probably want to override this to do something more fancy.

## SEE ALSO

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

## COPYRIGHT

Copyright 2007-2008 Martin Atkins

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