Un serveur XMPP : Openfire

Publié dans XMPP | Marqué avec , , ,
Share

Un serveur ? Pour quoi faire ?

Dans un précédent billet où j’ai expliqué les principes d’XMPP, on a vu que dans l’architecture XMPP, pour que deux utilisateurs communiquent entre eux, ils doivent chacun dialoguer avec leur serveur XMPP et ce sont ces serveurs XMPP qui vont s’échanger des messages pour les rediriger ensuite vers leur utilisateur.

Echange XMPP

Les serveurs XMPP en ligne existant

Plusieurs serveurs XMPP sont accessibles et offrent des services plus ou moins différents. Le serveur de Google Talk (gmail.com) par exemple permet de dialoguer avec ses contacts Google Talk en passant par le client XMPP Google Talk, ou tout autre client XMPP. De même pour celui de Jabber.org (jabber.org). Bref, si le serveur XMPP l’autorise, il est possible de se connecter  à partir de n’importe quel client sur un serveur XMPP dont on possède un compte, et de parler aux contacts liés à ce compte.

Créer son propre serveur XMPP

Mais il est aussi possible de créer son propre serveur XMPP ! Soit pour le mettre en ligne et y accéder de n’importe où, et même le rendre accessible à d’autre. Soit en local pour faire des tests ou je ne sais quoi. C’est cette deuxième possibilité que nous allons voir aujourd’hui !

Fort heureusement, il existe déjà plusieurs implémentations de serveurs XMPP et nous n’avons donc qu’à choisir parmi la liste proposée sur XMPP.org : Liste de serveurs XMPP.

Parmi eux, Openfire (anciennement Wildfire)  semble plutôt pas mal ! Facile d’installation et d’utilisation, il permet de mettre en place un système de messagerie instantanée au 1 à 1 ou en salle de discussions avec possibilité de créer des groupes d’individus. De plus, il permet de gérer la « présence » des utilisateurs (en XMPP, cela signifie : « ce gars est-il accessible ou non ? Non mais oh ! ») et de faire du routage via XML. Bref : les bases.

Installer Openfire

Je n’expliciterai la démarche que sur Windows car je n’ai pas eu l’occasion de tester ailleurs. Mais en cas de souci, vous n’avez qu’à regarder du côté de l’Installation Guide !

  • Télécharger Openfire et l’installer ou le dé-zipper
  • Ouvrir l’exécutable Openfire : bin/openfire.exe (il est possible d’utiliser openfire-service.exe en ligne de commande pour l’ouvrir en tant que service Windows)
  • C’est un peu plus long la première fois vu qu’il y a du paramètrage à faire. Logiquement vous devriez avoir quelque chose comme ceci :
  • Cliquer sur « Launch Admin » : une page Web s’ouvrira sur votre navigateur préférée (qui a dit Internet Explorer ?!?)
    • La première fois, il faut paramétrer Openfire. Rien de compliqué, il suffit de suivre les étapes. Un petit détail cependant, lors de la configuration de la base de données, pour faire simple il suffit de choisir « embedded database » (on n’a rien à faire comme ça), sinon il faut aller voir du côté de Database Installation guide
    • Par la suite, il suffit d’entrer le login+mot de passe de l’administrateur. Le login c’est « admin », le mot de passe est celui que vous avez défini pour l’administrateur lors du point précédent
  • Vous pouvez ensuite configurer votre serveur, gérer des utilisateurs, des groupes et des salles de discussions…

Utiliser Openfire

Et voilà, à chaque fois que vous souhaitez utiliser votre serveur XMPP, lancer Openfire et c’est parti ! Par défaut, l’hôte pour s’y connecter est « 127.0.0.1 ». par conséquent, si j’ai créé un utilisateur « Test » avec comme mot de passe « testtest », je peux m’y connecter en utilisant ce login/mot de passe et en précisant comme serveur (parfois appelé « service name » ou  « host ») « 127.0.0.1 ». Ci-dessous un exemple sous Spark, un client XMPP que nous verrons plus en détails dans un prochain billet :

Ecran de connexion de SparkEt un autre exemple avec un code Java utilisant la librairie Smack (devinez quoi ! C’est encore quelque chose que l’on verra dans un prochain billet !) :

// Prepare connection
ConnectionConfiguration config = new ConnectionConfiguration("127.0.0.1");
XMPPConnection connection = new XMPPConnection(config);
// Connect to the server
try {
	connection.connect();
	// Log into the server
	connection.login("test", "testtest");
}
catch (XMPPException e) {
	e.printStackTrace();
}

Quant au Jabber ID (JID) des utilisateurs sur ce serveur… Logiquement lors de la configuration du serveur Openfire, vous lui avez donné un nom. Pour moi c’est « testopenfire ». Donc, selon toute logique, le JID des utilisateurs de ce serveur devrait être « login@nom du serveur openfire » (test@testopenfire dans mon cas) mais ce n’est visiblement pas le cas… Réponse au prochaine épisode 🙂

D’autres ressources

3 Responses to Un serveur XMPP : Openfire

  1. Ping : Un client XMPP : Spark - 30 minutes par jour

  2. Ping : XMPP et Java avec Smack : b.a.-ba - 30 minutes par jour

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *