11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

J'ai essayé de mettre en place les websocket avec HTML5 grâce notamment au livre de Rodolphe Rimelé :
http://www.alsacreations.com/actu/lire/1302-livre-html5-eyrolles.html

J'ai réussi à mettre en place mon serveur avec phpwebsocket. J'ai aussi créer un mini chat en HTML5.

Tout fonctionne correctement... Enfin presque, sinon je ne serais pas là :

Quand j'envoie un message (méthode send), je récupère bien le message (avec onmessage) sur mon navigateur, mais si je lance un second navigateur, il ne récupère pas le message. Je n'arrive pas à faire interagir plusieurs fenêtres de navigateur sur le même websocket Smiley decu

J'ai testé avec Firefox et Chrome, j'ai le même comportement. J'avais aussi essayé le tuto ci-dessous, même problème :
http://sii-rennes.developpez.com/articles/un-chat-en-html5-avec-les-websockets/

Je me demande si ce n'est pas un problème de configuration ? Vous avez des idées ?

Merci Smiley smile
Administrateur
Bonjour,

L'échange doit se faire au niveau du serveur, c'est lui qui doit transmettre le message à tous les sockets connectés.

La question principale est donc : une fois le message reçu de son côté, que fait-il ? Parvient-t-il à l'envoyer aux autres ? Il faut gérer cette phase de diffusion, avec plusieurs techniques possibles (passer par un fichier, une base SQL, un socket interne, etc).

Une petite remarque : j'insiste sur le fait que PHP n'est pas l'idéal pour mettre en place un WebSocket, car il n'est pas totalement adapté de par sa conception. Pour un chat performant avec beaucoup de connectés, il faudrait peut-être envisager une autre interface côté serveur.
Merci pour la réponse.

Alors effectivement je ne fais rien de spécial côté serveur... J'ai cru que le simple fait d'envoyer un message au serveur activerai le "onmessage" sur tous les postes.

Ok pour la nouvelle interface côté serveur. Pour l'instant j'essaie juste de faire fonctionner un chat mais je compte aller plus loin par la suite. Que me conseilles-tu ? Socket.IO ?

Merci Smiley smile