Salut,
On m'a chargé de développer un module de chat en php5 utilisant des sockets. Je me suis largement inspiré du tutoriel de Stephane Eyskens tout en changeant légèrement le principe puisque je dois gérer des conversations deux à deux et non une chat-room globale.
J'ai adressé un mp à Stéphane mais peut-être que vous aurez des éléments de réponse ...
Visiblement, c'est plus un problème de communication réseau que de code php d'où le choix du forum.
Donc les clients s'inscrivent via un formulaire et sont dès lors considérés comme connectés.
Ils reçoivent la liste des connectés et des messages qui leurs sont destinés via une page rafraîchie régulièrement. A partir de cette page, ils peuvent ouvrir une communication avec un autre connecté en ouvrant un popup qui contient deux frames.
La frame du haut permet de suivre la conversation et est liée à la socket du client (stockée côté serveur) sur laquelle le serveur enverra du javascript pour ajouter les messages.
La frame du bas est un simple formulaire avec un peu de php pour gérer l'envoi sur la socket serveur.
Au final, ça fonctionne impeccable avec Firefox mais j'ai un gros soucis avec IE : le formulaire de message n'est pas affiché sauf si IE est lancé sur la machine sur laquelle le serveur est lancé (alors que je n'utilise même pas l'adresse de la boucle locale ! )... et même dans ce cas, si on ouvre une autre popup vers un autre client, le formulaire ne s'affiche pas (jusqu'à ce qu'on ait fermé la première).
Tout se passe comme si IE écoutait attentivement la socket mais refusait de faire quoi que ce soit d'autre pendant ce temps.
Avez-vous déjà eu des soucis de ce genre avec IE ou avez vous une idée de ce qui peux se passer ?
Merci à ceux qui m'ont lu jusque là.
Le code est adressable sur simple demande
Bertrand
Partager