Bonsoir,
Je cherche actuellement à faire un chat dans les applications (Android et iOS) de mon dernier projet mais je ne sais pas par où commencer et comment faire ! Les seuls contraintes que j’ai : compatible avec PHP (le serveur), compatible avec Java et Swift et adaptable (sécurité bien évidemment aussi).
Bien évidemment, si j’écris ici c’est que j’ai déjà fais des recherches
- Les solutions toutes faites comme Télégram semblaient parfaites (j’ai trouvé que Télégram d’ailleurs comme API gratuite de chat…). Cependant Télégram nécessite une authentification obligatoirement par SMS. C’est un point qui m’empêche de prendre cette solution car cela nécessiterai de demander le numéro de téléphone de l’utilisateur et ce n’est pas prévu !
- J’ai commencé par regarder les protocoles de communications entre les différents supports (entre les applications et le serveur). D’après mes recherches, les deux moyens les plus utilisés sont le HTTP ou le XMPP. L’avantage du XMPP est qu’il est "presque" spécialement conçu pour communiquer entre plusieurs supports : latence réduite, faible consommation de batterie, asynchrone… Déjà, comment cela est possible que le XMPP consomme moins que le HTTP alors que la connexion est maintenu sur le long terme ? Enfin d’après 90% des sites et certaines vidéos de démonstration, le bon choix à faire est le XMPP.
- J’ai suivi avec des recherches sur le XMPP avec PHP. J’ai trouvé quelque tutoriels intéressants comme https://www.ibm.com/developerworks/xml/tutorials/x-realtimeXMPPtut/ ou encore des librairies comme https://github.com/fabiang/xmpp mais il faut vraiment tout faire depuis le début (même les services de réceptions des messages etc) et je n’aurai jamais le temps… (ce n’est pas de la flemmardise mais du réalisme!)
- J’ai ensuite vu la solution Google Cloud Messaging qui semble rapide et efficace mais je n’ai pas tout saisi. En effet, il y a une connexion XMPP entre les téléphones et le serveur de Google et la connexion entre le serveur de Google et mon serveur PHP peut se faire soit en HTTP soit en XMPP. Imaginons que je suis A et que je veux écrire à B et C. A envoie un message au serveur de Google qui doit l’envoyer au serveur PHP qui lui enverra le message à B et C. Donc si le lien entre Google et mon serveur est en HTTP on perd tout l’intérêt du XMPP entre le portable et le serveur de Google… L’autre problème, c’est que je ne vois pas comment à partir d’une librairie comme https://github.com/fabiang/xmpp on peut utiliser la solution de Google ? Les exemples de codes
$channel->setTo('channelname@conference.myjabber.com') ->setPassword('channelpassword') ->setNickName('mynick');
ne sont pas du tout adapté à ce cas d’utilisation on dirait… J’ai regardé d’autres librairies comme https://github.com/carlosCharz/FCMTest/blob/master/app/src/main/java/com/wedevol/fcmtest/MainActivity.java mais elle n’a pas été mise à jour depuis longtemps et ne correspond plus. Ce n’est pas forcément un problème, avec un peu de temps je dois peut-être pouvoir adapter le code. Mais avant de m’y mettre je voudrais avoir votre avis sur la chose !
J’espère que j’ai été un minimum compréhensible. Il faut dire que c’est un peu confus dans mon esprit aussi et c’est pour ça que j’aimerai avoir des avis de connaisseurs !
Merci d’avance pour votre aide
+0
-0