Outils du site

fr:blog:post_047

Transition vers XMPP

En 2016, nous avons beaucoup échangé avec des gens de la communauté XMPP, qui nous ont vanté les mérites du protocole. Il aura fallu deux ans pour que cette migration soit enfin actée. Voici un petit retour sur cette aventure.

 Système de communication, CC0 Pixabay

À l'origine était IRC

Parmi les innombrables protocoles permettant du “chat”, nous avions choisi IRC au début de l'aventure de Khaganat pour une seule et bonne raison : une personne dans le groupe savait comment ça marchait et nous y a guidées.

IRC remplit son rôle dans l'organisation du projet. Avec l'assistance de la démone Pendorid, nous avons pu ajouter quelques fonctionnalités qui nous manquaient, comme l'archivage public des logs. Il a cependant divers défauts sous le capot : ce n'est pas si simple de mettre en place un serveur IRC bien géré, nous n'avons pas d'experte pour le connecter à d'autres outils (par exemple, avoir un des canaux IRC en jeu), et s'il est simple dans ses fonctionnalités de base, c'est aussi sa limite, il a très peu évolué depuis des années et ne prend pas en compte des usages modernes amenés par des outils comme Slack. Qu'on aime ou non ces fonctionnalités modernes (comme par exemple mettre des smileys en images, partager des fichiers), c'est une autre question… Toujours est-il qu'à côté des irréductibles d'IRC, nous avons aussi régulièrement eu des invitations à utiliser des trucs plus “modernes”.

Sur Khaganat, nous ne sommes pas des adeptes de la modernité à tout prix, nous préférerons la stabilité… et prendre le temps de réfléchir avant d'aller dans une direction. Cela nous évite de changer tous les mois d'outils et de trop nous disperser.

Les communications autour de Ryzom et Khaganat ont amené des membres de la communauté XMPP à nous contacter et à nous faire découvrir ce qu'était XMPP.

Alors, c'est quoi XMPP ?

C'est un protocole d'échange qui permet les mêmes choses qu'IRC, telles que :

  • Avoir des salons/canaux où papoter avec les amies
  • Se causer en privé
  • Avec des clients variés, pour Windows, Mac, Linux, en console, via une interface web…
  • Se connecter de façon anonyme ou avec un compte

Mais cela permet aussi plus facilement :

  • De logguer les conversations, et de façon plus fonctionnelle que les bidouilles d'IRC : en effet, à votre connexion, votre client récupère du serveur ce qui s'est dit avant que vous n'arriviez, ce qui permet de rejoindre la conversation en cours. On peut aussi consulter ces logs depuis une interface web.
  • De partager des images, des fichiers
  • De corriger les coquilles sur son dernier message
  • De décider pour qui on est “disponible” : vous pouvez passer pour absente sauf pour quelques amies
  • D'avoir un avatar à côté de son nom, et de donner les infos qu'on veut sur nous, comme de partager notre site web favori, le tout dans une sorte de “carte d'identité”
  • D'avoir des pseudonymes différents suivant les salons1)

Ces fonctionnalités peuvent être plus ou moins disponibles suivant les clients ou les serveurs par lesquels vous passez. Par exemple, des clients en console ne vont pas afficher les images ; et les plus vieux clients ne récupèrent pas forcément l'historique des conversations. C'est pour ces raisons que nous vous engageons, lors de vos premiers tests, soit à tester en anonyme et sans rien installer depuis le webchat, soit à utiliser le client Gajim en version 1 (ou supérieure), avec un compte créé sur jabberfr.org. Une fois que vous avez compris comment ça marche, faite-vous plaisir à tester d'autres clients ! Les adorateurs de Weechat trouveront par exemple leur bonheur avec le client Poezio, qui est assez similaire (et donc réservé à un public averti).

Logo d'XMPPCependant, toutes ces fonctionnalités, aussi sympathiques soient-elles, ne nous auraient pas décidées à migrer s'il n'y avait pas eu deux aspects en plus.

Le premier, c'est que nous avons toujours conçu Khanat comme un univers avec lequel interragir de nombreuses manières, ce qui voulait dire pouvoir papoter avec ses amies en jeu même lorsque nous n'avons pas lancé un client de jeu. Cet aspect-là, nous étions conscientes qu'il serait complexe à mettre en place, car en plus de la modification du protocole de communication, il allait aussi falloir prendre en compte les différences d'identité entre la joueuse et ses avatars. En effet, les amies de votre personnage “Marcel” ne sont pas forcément celles de votre autre personnage, “Georgette”. Et vous n'avez pas forcément envie qu'on fasse le lien entre ces deux personnages, comme étant joués par la même personne. Bonne nouvelle, XMPP gère déjà très bien le fait d'avoir une identité principale et des sous-comptes.

Le second aspect, c'est qu'il nous fallait des gens capables de brancher le serveur à nos envies… Et c'est là que la bonne humeur de la communauté XMPP intervient. Nous n'avons jamais eu l'occasion d'échanger avec des développeuses d'IRC, alors que nous avons rencontré plusieurs devs d'XMPP, dont un bon nombre sont francophones (ça aide à discuter), et très intéressées par les défis que nous leurs apportons.

XMPP a parfois l'image d'un protocole abrupt et complexe. Ses développeuses en sont conscientes ; pour elles, le principal problème est que tout ça est pensé par des techniciennes, et qu'elles ont peu de contact avec des utilisatrices basiques. Beaucoup d'efforts ont été faits ces dernières années afin de rendre XMPP plus accessible, avec des clients comme Movim ou Conversations, qui sont deux exemples fonctionnels très réussis de design bien pensé. Mais il y a encore du chemin à faire.

Aucun protocole n'est simple “en soi”. Ce qui fait que Google Talk ou la messagerie Facebook ont supplanté les groupes Usenet ? Il y a eu des moyens d'investis pour que ce soit plus glamour, plus agréable. Mais, le saviez-vous ? Le protocole derrière ces deux géants était, au moins au départ, XMPP. Ils ont tout fermé au fil des ans pour passer à des solutions propriétaires internes, mais leur démarrage et leur succès s'est fait en se basant sur XMPP.

Car XMPP a aussi cet avantage : ce n'est pas un petit nouveau. C'est un protocole robuste et éprouvé, qui a déjà fait face à de nombreuses situations et qui est bien documenté. Les quelques fonctionnalités listées ici ne sont qu'un minuscule aperçu de ses possibilités. Tout ce que nous pouvons imaginer faire, XMPP sait déjà le faire. Gérer des messages privés en différé, façon “mail” ? c'est possible. Faire un forum ? c'est possible ; Movim et Diaspora vous le montrent : les articles, les commentaires, tout passe par XMPP. Utiliser un identifiant unique pour plusieurs identités ? C'est possible. Passer de son ordinateur à son smartphone sans perdre la conversation en cours, c'est aussi possible. Synchroniser ses contacts entre ses divers appareils, c'est aussi possible. Passer des appels audio et vidéo ? Aussi !

Toutes ces possibilités ne nous intéressent pas forcément pour le moment, mais la versatilité du protocole garantit que nous trouverons une réponse à la plupart de nos rêves.

Travailler avec Jabberfr.org

Parce que cela reste un travail important et que nous n'avons pas des ressources infinies, nous avons délégué pour le moment la gestion de notre serveur XMPP à l'association Jabberfr.org, principalement via Link Mauve. Même si l'adresse est chat.khaganat.net2), c'est géré par les bénévoles de jabberfr.org, et les services sont hébergés sur leur serveur. Contrairement à IRC où nous squattions gratuitement les serveurs de Freenode sans bien voir comment participer, ici, les échanges se font dans les deux sens. Car nos retours en tant qu'utilisatrices vont permettre de faire évoluer non seulement les services de jabberfr, mais au delà de ça, de l'écosystème XMPP dans son ensemble.

C'est déjà un peu le cas, depuis deux ans que nous préparons ce transfert, cela a permis de repérer des bugs, des manques de fonctionnalités, de discuter des outils, d'améliorer des tutoriels… À chaque personne qui découvre XMPP et se pose des questions ou rencontre un problème, nous essayons de voir comment améliorer les choses pour que l'expérience des utilisatrices soit la plus confortable possible.

Par exemple, si le client android Conversations ou le client web Converse.js sont faciles à recommander et très simples à prendre en main, les clients de bureau sont encore d'un aspect un peu plus laborieux pour des gens qui découvrent. Nous avons choisi de mettre Gajim en avant, car parmi tous nos tests, c'est celui qui avait le plus de qualités pour le grand public, mais ce client est très perfectible. Cependant la communauté de Gajim a du répondant, ses outils sont pratiques (il est facile de leur ouvrir une issue, de demander des features) et le développement actif, donc nous allons travailler avec elle à améliorer les quelques soucis.

Deux ans pour migrer ?

Ouais… Voilà le temps moyen pour bouger !

Time Machine, CC0 PixabayPourquoi avoir mis si longtemps entre le moment où nous nous sommes dit “ouais, c'est cool, allons-y” et celui où nous y sommes réellement allées ?

Il y a plusieurs choses qui se sont succédées.

Avant tout, nous savons que faire bouger les gens d'un endroit à un autre est complexe. On a ses habitudes, c'est confortable, et tester un nouveau truc, c'est crevant. Donc, nous avons tenté de préparer le terrain afin que cela se passe bien. Certaines d'entre nous ont donc testé tous les clients à leur disposition, afin de faire un choix et de pouvoir proposer ce qui paraissait le plus adapté. Puis nous avons rédigé une première version des tutoriaux à propos de XMPP et des clients.

Nous avons aussi mis en place et testé les salons. Il a fallu quelques ajustements sur la façon de conserver les logs, sur l'adresse, etc. Rien d'énorme mais le temps que tous les acteurs se réunissent et agissent, le temps passait.

Enfin, ce qui nous a le plus retardé a été… le bot.

Pendorid est avec nous sur IRC depuis longtemps. Elle logue, fait des bêtises, ramène les flux RSS et parfois même mange de la dentelle. Il nous fallait un archivage des logs internes à Khaganat (puisque les serveurs n'étaient pas chez nous), au delà des 7 jours publics, donc une solution pour ça, qui pouvait être résolue par un bot. Idem pour les autres fonctions. Mais ce bot nous a donné du fil à retordre, car nous n'avons pas trouvé facilement le bon logiciel. Errbot a semblé remplir le job un temps, jusqu'à ce que nous nous rendions compte qu'il avait tendance à consommer beaucoup de mémoire pour un si petit bot, et à planter de façon inopinée, et il lui manquait la fonctionnalité essentielle : conserver les logs. Linkmauve a fini par nous bricoler une nouvelle Pendorid sur mesure. Cette dernière n'est pas encore capable de parler sur XMPP, mais ramène déjà les flux RSS et logue les salons.

Il faut aussi garder en tête que nous sommes peu nombreuses et que personne n'a un plein temps à consacrer bénévolement à Khaganat… ce qui allonge d'autant plus la durée des travaux.

Et maintenant ?

Nous vous invitons vivement à quitter nos canaux IRC pour rejoindre nos salons XMPP. Trois des membres très présents en ligne resteront en tant que “Bot” sur IRC (Deed, Link Mauve et Zatalyz) afin de rediriger celles qui seraient perdues là-bas vers XMPP. Il y aura forcément des arrivées de gens ayant suivi les informations d'anciennes publications ou qui ne sont pas venus depuis longtemps et qui auront besoin d'être guidés. Nous souhaitons éviter de continuer à alimenter IRC, XMPP répondant mieux à nos besoins futurs. Donc : ne restez pas sur nos canaux IRC ! Oust ! Et venez nous saluer sur XMPP. Comme pour IRC, vous avez le droit de venir, de dire des bêtises, de ne rien dire et de regarder, et même de participer activement au projet : tout le monde est bienvenu, quelle que soit son implication dans Khaganat.

Toujours plus loin toutes ensemble ! CC0 Pixabay

1)
Les “canaux” sont nommés “salons” (“room” en anglais) dans XMPP.
2)
Pas en http, uniquement pour le protocole XMPP… pas la peine d'essayer d'ouvrir ça avec votre navigateur web.
fr/blog/post_047.txt · Dernière modification: 2018/08/01 07:19 par zatalyz