Je teste depuis quelques semaines, avec mes amis et ma famille, l’utilisation de mon serveur Prosody pour chatter, en groupe ou pas, et s’envoyer des photos, principalement via des smartphone Android et iOS (nul n’est parfait !). L’idée, c’est de pouvoir échanger sans dépendre d’opérateurs, ou d’applications qui enregistrent tout ce que nous disons.
J’ai eu beaucoup de mal à trouver un client XMPP qui fonctionne à la fois sous Android et iOS, et qui arrive à envoyer correctement des photos. Soit les clients ne fonctionnaient que sur un type de téléphone, soit ils n’arrivaient pas à envoyer des photos, soit ce n’étaient des applications qui nécessitaient de créer un compte sur un serveur externe, et qui loguaient tous les échanges, ce que je voulais justement éviter.
J’ai finalement fini par trouver Astrachat, qui présente l’avantage d’être disponible sur les deux plateformes mobiles, et arrive à envoyer des photos correctement. Il gère les conversations de groupe, et l’interface est assez sympa, même s’il n’y a pas beaucoup de fonctionnalités hormis celle que je viens de citer. Outre le fait qu’il n’est pas open source, Astrachat avait par contre le désavantage de ne pas supporter l’envoi de photos vers d’autres clients : si on envoie une photo depuis Astrachat sur un compte connecté par exemple sur Pidgin, ce dernier reçoit, au lieu de la photo, un message “X vous a envoyé une photo via Astrachat, téléchargez-le pour la voir !”. Ce qui est d’ailleurs mensonger, puisque même si on l’installe, la photo ne sera pas renvoyée, mais c’est une autre histoire.
En fait, le principal souci que nous avons rencontré avec Astrachat est le suivant : il y a un gros bug qui fait que parfois, le client rate l’envoi d’un message vers un utilisateur, et l’envoie en tant que conversation de groupe. Comme le serveur ne s’attend pas à recevoir une conversation de groupe au milieu d’une conversation “un à un”, il ignore le message. Mais le client, une fois qu’il a fait cette erreur, continue à envoyer les messages en mode “groupe”. Le résultat ? On ne peut plus joindre du tout la personne en question… jusqu’à ce qu’on vide l’historique de conversation, voire supprime le contact. Un peu gênant, vous en conviendrez…
J’ai donc cherché des alternatives, et tant qu’a faire, open source et auto-hébergeable. J’ai fini par trouver Riot, qui est une interface pour le serveur de chat décentralisé open sourceMatrix.
Premier bon point, Riot est disponible sur tout plein de plateforme : Android, iOS, Linux, Windows, etc. Il dispose aussi d’une interface web assez pratique :
L’application Android marche bien, et en plus, la synchro entre le web et elle est instantanée, c’est impressionnant. Riot supporte le partage d’images, mais aussi de vidéos, contrairement à Astrachat.
Matrix est très facile à installer, et si la documentation est assez succinte, il semble assez robuste. Nous le testons depuis une semaine, et pas de messages perdus, c’est agréable ! Donc, comme dirait Morpheus, “Welcome to the Matrix !” 😉