Comme Sephi' a très bien répondu pour le Push je ne vais pas redire tous ça mais je vais répondre à ta question sur l'émulation des fonctionnalités des Websockets. En faite, je vais surtout te parler de Socket.IO vu que c'est cette lib' que j'utilise. Celle ci s'utilise avec ses propres fonctions, ce n'est donc pas une surcharge de l'objet Websocket si jamais il n'existe pas sur le navigateur. Il faut donc apprendre son fonctionnement, mais ce qui est bien avec lui c'est qu'il a un module qui va directement avec Node.JS si tu l'utilises côté serveur.
Concernant la façon dont il émule, en faite il va utiliser des fonctionnalités tierces supportés par les navigateurs, par exemple l'utilisation de Java ou de Flash pour faire les Websockets, si jamais ils ne sont pas supportés nativement par le navigateur. En dernier recours je crois qu'il passe par de l'Ajax, mais je n'en suis pas sûr, a vérifier.
Concernant le serveur si jamais tu te décides à utiliser Socket.IO et Node.JS. Sache que ceux ci marchent par événements, tu envois en faite un événement au serveur ou au client, si c'est le serveur qui envoit, cette événement est accompagné de données envoyées en même temps. Tu peux donc très bien faire un événement "personnageABouger" côté serveur, que lui envoit le client, et ensuite le serveur va faire appelle chez tous les clients à un événement "unClientABouger" en leur envoyant. Bien sûr ce n'est qu'un exemple, mais c'est le principe, cela permet de bien séparer les messages reçus comparés au système de push où l'on écoute un canal ( comme expliqué par Sephi' ) et où il y a donc un seul événement qui est un message reçu ( les données ) sur un canal.
Concernant la façon dont il émule, en faite il va utiliser des fonctionnalités tierces supportés par les navigateurs, par exemple l'utilisation de Java ou de Flash pour faire les Websockets, si jamais ils ne sont pas supportés nativement par le navigateur. En dernier recours je crois qu'il passe par de l'Ajax, mais je n'en suis pas sûr, a vérifier.
Concernant le serveur si jamais tu te décides à utiliser Socket.IO et Node.JS. Sache que ceux ci marchent par événements, tu envois en faite un événement au serveur ou au client, si c'est le serveur qui envoit, cette événement est accompagné de données envoyées en même temps. Tu peux donc très bien faire un événement "personnageABouger" côté serveur, que lui envoit le client, et ensuite le serveur va faire appelle chez tous les clients à un événement "unClientABouger" en leur envoyant. Bien sûr ce n'est qu'un exemple, mais c'est le principe, cela permet de bien séparer les messages reçus comparés au système de push où l'on écoute un canal ( comme expliqué par Sephi' ) et où il y a donc un seul événement qui est un message reçu ( les données ) sur un canal.