{
    "mode": "perldoc",
    "parameter": "Net::Jabber",
    "section": "",
    "url": "https://www.chedong.com/phpMan.php/perldoc/Net%3A%3AJabber/json",
    "generated": "2026-06-11T04:56:46Z",
    "synopsis": "Net::Jabber provides a Perl user with access to the Jabber Instant\nMessaging protocol.\nFor more information about Jabber visit:\nhttp://www.jabber.org",
    "sections": {
        "NAME": {
            "content": "Net::Jabber - Jabber Perl Library\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "Net::Jabber provides a Perl user with access to the Jabber Instant\nMessaging protocol.\n\nFor more information about Jabber visit:\n\nhttp://www.jabber.org\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "Net::Jabber is a convenient tool to use for any perl script that would\nlike to utilize the Jabber Instant Messaging protocol.  While not a\nclient in and of itself, it provides all of the necessary back-end\nfunctions to make a CGI client or command-line perl client feasible and\neasy to use.  Net::Jabber is a wrapper around the rest of the official\nNet::Jabber::xxxxxx packages.\n\nThere is are example scripts in the example directory that provide you\nwith examples of very simple Jabber programs.\n\n\nNOTE: The parser that XML::Stream::Parser provides, as are most Perl\nparsers, is synchronous.  If you are in the middle of parsing a packet\nand call a user defined callback, the Parser is blocked until your\ncallback finishes.  This means you cannot be operating on a packet,\nsend out another packet and wait for a response to that packet.  It\nwill never get to you.  Threading might solve this, but as of the\nwriting of this, threading in Perl is not quite up to par yet.  This\nissue will be revisted in the future.\n",
            "subsections": []
        },
        "EXAMPLES": {
            "content": "For a client:\nuse Net::Jabber;\nmy $client = new Net::Jabber::Client();\n\nFor a component:\nuse Net::Jabber;\nmy $component = new Net::Jabber::Component();\n",
            "subsections": []
        },
        "METHODS": {
            "content": "The Net::Jabber module does not define any methods that you will call\ndirectly in your code.  Instead you will instantiate objects that call\nfunctions from this module to do work.  The three main objects that\nyou will work with are the Message, Presence, and IQ modules.  Each one\ncorresponds to the Jabber equivalent and allows you get and set all\nparts of those packets.\n",
            "subsections": []
        },
        "PACKAGES": {
            "content": "For more information on each of these packages, please see the man page\nfor each one.\n",
            "subsections": [
                {
                    "name": "Net::Jabber::Client",
                    "content": "This package contains the code needed to communicate with a Jabber\nserver: login, wait for messages, send messages, and logout.  It uses\nXML::Stream to read the stream from the server and based on what kind\nof tag it encounters it calls a function to handle the tag.\n"
                },
                {
                    "name": "Net::Jabber::Component",
                    "content": "This package contains the code needed to write a server component.  A\ncomponent is a program tha handles the communication between a jabber\nserver and some outside program or communications package (IRC, talk,\nemail, etc...)  With this module you can write a full component in just\na few lines of Perl.  It uses XML::Stream to communicate with its host\nserver and based on what kind of tag it encounters it calls a function\nto handle the tag.\n"
                },
                {
                    "name": "Net::Jabber::Protocol",
                    "content": "A collection of high-level functions that Client and Component use to\nmake their lives easier through inheritance.\n"
                },
                {
                    "name": "Net::Jabber::JID",
                    "content": "The Jabber IDs consist of three parts: user id, server, and resource.\nThis module gives you access to those components without having to\nparse the string yourself.\n"
                },
                {
                    "name": "Net::Jabber::Message",
                    "content": "Everything needed to create and read a <message/> received from the\nserver.\n"
                },
                {
                    "name": "Net::Jabber::Presence",
                    "content": "Everything needed to create and read a <presence/> received from the\nserver.\n"
                },
                {
                    "name": "Net::Jabber::IQ",
                    "content": "IQ is a wrapper around a number of modules that provide support for the\nvarious Info/Query namespaces that Jabber recognizes.\n"
                },
                {
                    "name": "Net::Jabber::Stanza",
                    "content": "This module represents a namespaced stanza that is used to extend a\n<message/>, <presence/>, and <iq/>.  Ultimately each namespace is\ndocumented in a JEP of some kind.  http://jabber.org/jeps/\n\nThe man page for Net::Jabber::Stanza contains a listing of all\nsupported namespaces, and the methods that are supported by the objects\nthat represent those namespaces.\n"
                },
                {
                    "name": "Net::Jabber::Namespaces",
                    "content": "Jabber allows for any stanza to be extended by any bit of XML.  This\nmodule contains all of the internals for defining the Jabber based\nextensions defined by the JEPs.  The documentation for this module\nexplains more about how to add your own custom namespace and have it be\nsupported.\n"
                }
            ]
        },
        "AUTHOR": {
            "content": "Ryan Eatmon\n",
            "subsections": []
        },
        "COPYRIGHT": {
            "content": "This module is free software, you can redistribute it and/or modify it under the same terms as\nPerl itself.\n",
            "subsections": []
        }
    },
    "summary": "Net::Jabber - Jabber Perl Library",
    "flags": [],
    "examples": [
        "For a client:",
        "use Net::Jabber;",
        "my $client = new Net::Jabber::Client();",
        "For a component:",
        "use Net::Jabber;",
        "my $component = new Net::Jabber::Component();"
    ],
    "see_also": []
}