Book description
Jabber is a set of protocols expressed in XML, and an extensible framework that allows people and applications to exchange all sorts of information, from simple text messages to being used to extend the backbone of an enterprise data system. Jabber gives you the power to build applications that have identity, presence, and that can take part in conversations.Programming Jabber offers developers a chance to learn and understand the Jabber technology and protocol from an implementer's point of view. Detailed information of each part of the Jabber protocol is introduced, explained, and discussed in the form of mini-projects, or simple and extended examples. Programming Jabber provides this foundation by:
- Showing you how to install and configure the Jabber server
- Providing a detailed overview of the server architecture and configuration options
- Covering the core Jabber technologies such as XML streams and Jabber identifiers
- Referencing all of Jabber's XML namespaces
- Examining the client registration and authentication phases
- Showing how to deploy your own Jabber-based messaging solutions
- Demonstrating how to embed XML-RPC-style call mechanisms into Jabber
Publisher resources
Table of contents
- A Note Regarding Supplemental Files
- Preface
-
I. Getting Started with Jabber
- 1. Introducing Jabber
- 2. Inside Jabber
- 3. Installing the Jabber Server
-
4. Server Architecture and Configuration
- 4.1. An Overview of the Server Architecture
- 4.2. Server Configuration
- 4.3. A Tour of jabber.xml
- 4.4. Component Instance: sessions
- 4.5. Component Instance: xdb
- 4.6. Component Instance: c2s
- 4.7. Logging Definition: elogger
- 4.8. Logging Definition: rlogger
- 4.9. Component Instance: dnsrv
- 4.10. Component Instance: conf
- 4.11. Component Instance: jud
- 4.12. Component Instance: s2s
- 4.13. The io Section
- 4.14. pidfile Section
- 4.15. Managing the Configuration
-
4.16. Server Constellations
- 4.16.1. Multiple Servers on One Host
- 4.16.2. “Real” Virtual Jabber Servers
-
4.16.3. Splitting Up Jabber Server Processes
- 4.16.3.1. Define the configuration for the satellite server
- 4.16.3.2. Open a connection point in the main server
- 4.16.3.3. List the service definition in <browse/>
- 4.16.3.4. Add a connector mechanism to the satellite server
- 4.16.3.5. Specify a different PID file location
- 4.16.3.6. Starting the main server
- 4.16.3.7. Starting the satellite server
- 4.16.4. Using Services on Other Jabber Servers
-
II. Putting Jabber’s Concepts to Work
- 5. Jabber Technology Basics
-
6. Jabber Namespaces
- 6.1. Namespace Usage
-
6.2. The IQ Namespaces
- 6.2.1. jabber:iq:agent
- 6.2.2. jabber:iq:agents
- 6.2.3. jabber:iq:auth
- 6.2.4. jabber:iq:autoupdate
- 6.2.5. jabber:iq:browse
- 6.2.6. jabber:iq:conference
- 6.2.7. jabber:iq:gateway
- 6.2.8. jabber:iq:last
- 6.2.9. jabber:iq:oob
- 6.2.10. jabber:iq:private
- 6.2.11. jabber:iq:register
- 6.2.12. jabber:iq:roster
- 6.2.13. jabber:iq:search
- 6.2.14. jabber:iq:time
- 6.2.15. jabber:iq:version
- 6.3. The X Namespaces
- 6.4. The X::IQ Relationship
- 6.5. Miscellaneous Namespaces
- 7. User Registration and Authorization
- 8. Using Messages and Presence
-
9. Groupchat, Components, and Event Models
- 9.1. Keyword Assistant
-
9.2. Connecting Devices to Jabber
- 9.2.1. What We’re Going to Do
- 9.2.2. The Coffee Script
-
9.2.3. Examining the Coffee Script Step by Step
- 9.2.3.1. Declaring the modules, constants, and variables
- 9.2.3.2. Initialization and calibration
- 9.2.3.3. Connecting to the Jabber server
- 9.2.3.4. Sensor poll/presence push loop
- 9.2.3.5. The setup_Jabber() function
- 9.2.3.6. The set_presence() function
- 9.2.3.7. The InPresence() subroutine
- 9.2.3.8. The setup_RCX() function
- 9.2.3.9. The calibrate() function
- 9.2.3.10. The set_status() function
-
9.3. An RSS News Agent
- 9.3.1. Writing the News Agent
- 9.3.2. Other Differences Between Client and Component Programming
- 9.3.3. The RSS News Agent Script
-
9.3.4. Reviewing the RSS News Agent Script Step by Step
- 9.3.4.1. Module declarations and variable definitions
- 9.3.4.2. Connecting to the Jabber server
- 9.3.4.3. Preparing the RSS event function and element handlers
- 9.3.4.4. Authenticating handshake and launch of main loop
- 9.3.4.5. Handling registration requests
- 9.3.4.6. Handling version requests
- 9.3.4.7. Handling browse requests
- 9.3.4.8. Dealing with other requests
- 9.3.4.9. The RSS mechanism
- 9.3.4.10. The cleanup() function
- 9.3.4.11. Helper functions
- 9.3.5. Further Ideas
- 9.4. A Simple Headline Viewer
-
10. Pointers for Further Development
- 10.1. A Simple Jabber-Based Address Book
- 10.2. XML-RPC over Jabber
- 10.3. Browsing LDAP
- 10.4. Building an ERP Connection
- A. The jabber.xml Contents
- B. The IQRPC Classes for JabberRPCResponder
- About the Author
- Colophon
- Copyright
Product information
- Title: Programming Jabber
- Author(s):
- Release date: January 2002
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9780596002022
You might also like
article
Use Github Copilot for Prompt Engineering
Using GitHub Copilot can feel like magic. The tool automatically fills out entire blocks of code--but …
book
Professional XMPP Programming with JavaScript® and jQuery
Create real-time, highly interactive apps quickly with the powerful XMPP protocol XMPP is a robust protocol …
article
Run Llama-2 Models Locally with llama.cpp
Llama is Meta’s answer to the growing demand for LLMs. Unlike its well-known technological relative, ChatGPT, …
book
Hacking Web Performance
In spite of the many performance optimization techniques in use today, web developers face significant loading …