This document provides a minimal working example of a client implementation using the Smack library, making
it connect to a running Openfire server.
Topics that are covered in this document:
Background
Ignite Realtime's Smack project is an Open
Source XMPP client library for instant messaging and presence. A pure Java library, it can be embedded into
your applications to create anything from a full XMPP client to simple XMPP integrations such as sending
notification messages and presence-enabling devices.
This guide describes how to use Smack to connect to Openfire. It provides nothing more than a minimal
working example, intended as a stepping stone to for client developers that get started with a new project.
Preparations
In this example, a client connection will be made against a running Openfire server. For ease of
configuration, the 'demoboot' setup of Openfire is used.
The 'demoboot' setup of Openfire allows one to start a fresh installation of Openfire into a certain
provisioned state, without running any of the setup steps. When running in 'demoboot' mode:
an administrative account is created using the username 'admin' and password 'admin'
two users are automatically created: 'jane' and 'john' (both using the value 'secret' as their password)
the XMPP domain name is configured to be 'example.org' (for ease of use, configure 'example.org' to be an alias of '127.0.0.1' in your hosts file!)
To start Openfire in 'demoboot' mode, you can invoke the Openfire executable using the -demoboot
argument, as shown below.
Code
This example uses Apache Maven to define the project and define usage of the Smack library. Other build
tools, like Gradle, could also be used.
To start the project, create a Maven pom.xml file in the root of your project. This file is
primarily used to define the Smack library as a dependency of the project.
A simple Java class file, using nothing but a main method, will be used to create two
XMPP connections that connect to Openfire. One connection will start listening for a chat message, while
the other connection will send such a message.
Use your IDE to run the main method. You should see Received: Hello! be printed to
the standard output. That's it!
Note that this example disables important security features. You should not use this for anything important!
Further Reading
Please use the links below to find more information.