Après le serveur XMPP et le client XMPP, nous allons nous intéresser d’avantage au côté client en codant quelques bribes de Java pour faire du XMPP. Pour cela, il existe encore une liste de librairies XMPP proposée par XMPP.org, et, comme précédemment, j’ai choisi celle qui m’a été conseillée et qui est développée par Jive Software : Smack !
Pour faire mes tests, j’ai lancé en local un serveur Openfire, sur lequel j’ai créé deux utilisateurs : « Fylhan » et « Test ». J’ai lancé Fylhan sur le client XMPP Spark et je vais utilisé « Test » pour mes tests. (quand je dis que j’ai « lancé Fylhan », je ne parlais pas de moi hein !)
Exemple simple d’utilisation
Dans l’exemple ci-dessous, on se connecte au serveur XMPP 127.0.0.1 avec le login et mot de passe de l’utilisateur « Test ». Puis on envoie un message à un de nos amis. On pourrait par exemple l’envoyer à « Fylhan » : fylhan@testopenfire. Attention cependant, pour que « Fylhan » reçoive ce message, il doit faire partie des contacts de « Test », c’est-à-dire dans sa liste de « Roster ».
public class TestXMPP { public static void main(String[] args) { // Create the configuration for this new 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", "test"); } catch (XMPPException e) { e.printStackTrace(); } // Write a message to a friend Message msg = new Message("friend JID", Message.Type.chat); msg.setBody("Hello my friend!"); connection.sendPacket(msg); System.out.println("Sent to 'my friend'> Hello my friend!"); } }
Ce que l’on va (tenter de) voir par la suite
Après cette première utilisation basique de Smack pour envoyer un message à un contact via XMPP, nous allons tenter de voir les points suivant :
- Smack pour se connecter à Google Talk
- Smack pour gérer les autorisations/vie privée
- Smack pour consulter sa liste de contact : Roster
- Smack pour créer une salle de discussion
- Smack pour modifier sa Presence
On ne verra sûrement pas tout, mais c’est pas grave !
Quelques ressources
- Today Java : Tutoriel sur Smack. Très bon tutoriel notamment pour la récupération des informations sur sa liste de contact (Roster) et la réception de paquets.
- Ashwinrayaprolu : Smack, XMPP et GTalk. Un bon tutoriel pour démarrer même si je n’aime pas trop l’approche.