19-05-2011, 12:03 PM
Je ne comprends pas absolument pas ce qui t'empêche d'utiliser un système de push prêt à l'emploi.
Si tu veux faire du push, tu peux passer par plusieurs systèmes (cf. Socket.IO) :
Chaque technique a ses atouts mais n'est pas disponible partout. La seule qui fonctionne de manière universelle, c'est le XHR long-polling. Ça consiste à envoyer une requête Ajax qui va traîner en longueur : dès que le serveur aura la réponse, il la retournera au client qui relancera une connexion longue. Ainsi, ça donne ainsi l'illusion que le serveur d'envoie des données au client (alors que techniquement, il ne fait que répondre, mais le résultat est là).
Problème, pour mettre ça en place, il faut un serveur Web qui supporte bien d'avoir de nombreuses connexions simultanées qui durent longtemps. Ce n'est pas le cas d'Apache, par exemple. Tu devras donc faire tourner un second serveur qui sera approprié pour ça.
Bien sûr, si tu crées ta propre roue, aucune chance qu'elle tourne mieux que les autres. Donc je te conseille d'opter pour un serveur de push existant que tu pourras installer sur ta machine (il ya une version qui tourne sur Node, l'autre sur Ruby. L'API exposée est la même). Je connais Faye et Juggernaut2 qui marchent bien avec Javascript (client-side ou server-side) et Ruby. Pour PHP, je ne sais pas ce qui existe. Socket.IO semble très compatible, mais je n'ai pas étudié son cas.
Si tu veux faire du push, tu peux passer par plusieurs systèmes (cf. Socket.IO) :
- WebSocket
- Adobe Flash Socket
- ActiveX HTMLFile (IE)
- XHR with multipart encoding
- XHR with long-polling
- JSONP polling (for cross-domain)
Chaque technique a ses atouts mais n'est pas disponible partout. La seule qui fonctionne de manière universelle, c'est le XHR long-polling. Ça consiste à envoyer une requête Ajax qui va traîner en longueur : dès que le serveur aura la réponse, il la retournera au client qui relancera une connexion longue. Ainsi, ça donne ainsi l'illusion que le serveur d'envoie des données au client (alors que techniquement, il ne fait que répondre, mais le résultat est là).
Problème, pour mettre ça en place, il faut un serveur Web qui supporte bien d'avoir de nombreuses connexions simultanées qui durent longtemps. Ce n'est pas le cas d'Apache, par exemple. Tu devras donc faire tourner un second serveur qui sera approprié pour ça.
Bien sûr, si tu crées ta propre roue, aucune chance qu'elle tourne mieux que les autres. Donc je te conseille d'opter pour un serveur de push existant que tu pourras installer sur ta machine (il ya une version qui tourne sur Node, l'autre sur Ruby. L'API exposée est la même). Je connais Faye et Juggernaut2 qui marchent bien avec Javascript (client-side ou server-side) et Ruby. Pour PHP, je ne sais pas ce qui existe. Socket.IO semble très compatible, mais je n'ai pas étudié son cas.