Programmation » Techniques de "streaming" avec XMLHttpRequest
Techniques de "streaming" avec XMLHttpRequest
Publié le 31/12/2009 @ 17:50:19,
Par zionPlop,
Je viens de me lire pleins d'articles sur diverses techniques pour streamer du content du serveur vers le client. Mais j'arrive pas à encore trouver la technique idéale, partage d'expérience?
1. Il y a la possibilité de l'iframe qui se charge indéfiniment. Bon pas génial car dès que l'user appuie sur ESC le truc est foutu, et la page semble jamais finir de se charger. Bref, inutilisable.
2. http://www.subbu.org/blog/2006/04/dissecting-ajax-server-push
La, il explique une technique avec du multipart et le XMLHttpRequest
Bon, intéressant, son exemple fonctionne (mon code toujours pas), mais de toute façon n'est pas du tout compatible avec IE (même pas le 8).
3. Reste la possibilité d'une requête XMLHttpRequest qui se fait toutes les X secondes, mais ça bouffe vraiment trop à mon gout, ça fait pleins de connexions et on doit trouver un compromis entre le délai de l'information envoyée et la charge du serveur.
4...? ? ?
Une piste pour une autre solution, ou pour améliorer le 2?
Je viens de me lire pleins d'articles sur diverses techniques pour streamer du content du serveur vers le client. Mais j'arrive pas à encore trouver la technique idéale, partage d'expérience?
1. Il y a la possibilité de l'iframe qui se charge indéfiniment. Bon pas génial car dès que l'user appuie sur ESC le truc est foutu, et la page semble jamais finir de se charger. Bref, inutilisable.
2. http://www.subbu.org/blog/2006/04/dissecting-ajax-server-push
La, il explique une technique avec du multipart et le XMLHttpRequest
Bon, intéressant, son exemple fonctionne (mon code toujours pas), mais de toute façon n'est pas du tout compatible avec IE (même pas le 8).
3. Reste la possibilité d'une requête XMLHttpRequest qui se fait toutes les X secondes, mais ça bouffe vraiment trop à mon gout, ça fait pleins de connexions et on doit trouver un compromis entre le délai de l'information envoyée et la charge du serveur.
4...? ? ?
Une piste pour une autre solution, ou pour améliorer le 2?
Je suis le Roy
Techniques de "streaming" avec XMLHttpRequest
Publié le 31/12/2009 @ 17:56:02,
Par zion5. http://www.pushlets.com/
on dirait que ça répond à ma question... avec du java en fait!
on dirait que ça répond à ma question... avec du java en fait!
Je suis le Roy
Techniques de "streaming" avec XMLHttpRequest
Publié le 31/12/2009 @ 17:57:03,
Par gizmo4: Flash (en attendant le html 5 et son WebSocket). Avec le Flash, rien ne t'empeche d'ouvrir un socket et de faire du push venant du serveur assez facilement. Ensuite, il suffit de faire dialoguer ton flash avec ton JavaScript dans ta page et le tour est joué.
Concept vivant.
Techniques de "streaming" avec XMLHttpRequest
Publié le 31/12/2009 @ 18:00:11,
Par zionEt il existe des petits flash déjà tout prévus pour ça? Histoire de pas devoir se trouer le cul à tout réécrire?
Je suis le Roy
Techniques de "streaming" avec XMLHttpRequest
Publié le 31/12/2009 @ 18:00:36,
Par gizmoD'après ce que j'en lis, ca ressemble fort a du "3" ton "5"
Concept vivant.
Techniques de "streaming" avec XMLHttpRequest
Publié le 31/12/2009 @ 18:04:54,
Par zionSa mère
Bon et ton 4, t'as une piste sur le web pour que j'y trouve des infos?
Bon et ton 4, t'as une piste sur le web pour que j'y trouve des infos?
Je suis le Roy
Techniques de "streaming" avec XMLHttpRequest
Publié le 31/12/2009 @ 18:06:30,
Par gizmoEt il existe des petits flash déjà tout prévus pour ça? Histoire de pas devoir se trouer le cul à tout réécrire?
http://github.com/maccman/juggernaut_plugin#readme
C'est pour rails, mais vu qu'il y a le flash et des exemples, ca doit être assez facile a utiliser vers un autre langage.
Concept vivant.
Techniques de "streaming" avec XMLHttpRequest
Publié le 31/12/2009 @ 18:07:27,
Par zionhttp://www.javaworld.com/javaworld/jw-03-2008/jw-03-asynchhttp.html
Quand je lis en diagonale leur article, ils parlent quand même d'une seule requête en continu aussi
Quand je lis en diagonale leur article, ils parlent quand même d'une seule requête en continu aussi
Je suis le Roy
Techniques de "streaming" avec XMLHttpRequest
Publié le 31/12/2009 @ 18:08:25,
Par gizmohttp://dev.dschini.org/socketjs/ pourrait aussi être intéressant.
Concept vivant.
Techniques de "streaming" avec XMLHttpRequest
Publié le 31/12/2009 @ 18:13:35,
Par gizmohttp://www.javaworld.com/javaworld/jw-03-2008/jw-03-asynchhttp.html
Quand je lis en diagonale leur article, ils parlent quand même d'une seule requête en continu aussi
Quand je lis en diagonale leur article, ils parlent quand même d'une seule requête en continu aussi
Oui, mais cette technique de requète en continu a plusieurs désavantages:
- Pas bien supporté par tous les browsers
- Ne marche pas avec tout une sériel de proxy qui font du caching
- Il faut que ton serveur soit configuré pour. Par défaut, Apache, c'est 15 seconde de timeout si pas d'activité.
Actuellement, les seuls alternatives vraiment viables sont le socket flash et le pulling en ajax. L'iFrame n'arrivant que 3eme.
Concept vivant.
Techniques de "streaming" avec XMLHttpRequest
Publié le 31/12/2009 @ 18:16:42,
Par AltarEt silverlight, il pue ?
Dernière édition: 31/12/2009 @ 18:16:56
Dernière édition: 31/12/2009 @ 18:16:56
Techniques de "streaming" avec XMLHttpRequest
Publié le 31/12/2009 @ 18:20:15,
Par zionJustement, si on passe par un truc en continu via du flash, le support est quasi total. (Altar Silverlight c'est sur quoi, 1% des navigateurs même pas? )
Niveau serveur je gère justement, pas d'Apache ou quoi que ce soit, je ne m'inquiète vraiment pas, ni pour le timeout.
Pour le proxy, c'est pas totalement faux que c'est mal supporté. Mais comment fait FB d'aileurs? Du polling en continu? (damned les ressources de con!)
(Mais les utilisateurs de proxy je peux encore accepter que ça passe pas, tant pis )
Niveau serveur je gère justement, pas d'Apache ou quoi que ce soit, je ne m'inquiète vraiment pas, ni pour le timeout.
Pour le proxy, c'est pas totalement faux que c'est mal supporté. Mais comment fait FB d'aileurs? Du polling en continu? (damned les ressources de con!)
(Mais les utilisateurs de proxy je peux encore accepter que ça passe pas, tant pis )
Je suis le Roy
Techniques de "streaming" avec XMLHttpRequest
Publié le 31/12/2009 @ 18:28:19,
Par gizmoJustement, si on passe par un truc en continu via du flash, le support est quasi total. (Altar Silverlight c'est sur quoi, 1% des navigateurs même pas? )
Niveau serveur je gère justement, pas d'Apache ou quoi que ce soit, je ne m'inquiète vraiment pas, ni pour le timeout.
Pour le proxy, c'est pas totalement faux que c'est mal supporté. Mais comment fait FB d'aileurs? Du polling en continu? (damned les ressources de con!)
(Mais les utilisateurs de proxy je peux encore accepter que ça passe pas, tant pis )
Niveau serveur je gère justement, pas d'Apache ou quoi que ce soit, je ne m'inquiète vraiment pas, ni pour le timeout.
Pour le proxy, c'est pas totalement faux que c'est mal supporté. Mais comment fait FB d'aileurs? Du polling en continu? (damned les ressources de con!)
(Mais les utilisateurs de proxy je peux encore accepter que ça passe pas, tant pis )
Facebook fait du polling, oui (à moins qu'ils aient changé depuis). Pour le proxy, pour peu que ton FAI t'en met un d'office, c'est un peu vache de dire "bien fait pour ta gueule"
Et Silverlight, c'est loin d'être assez répandu (30% aux dernières info).
Concept vivant.
Techniques de "streaming" avec XMLHttpRequest
Publié le 31/12/2009 @ 18:31:23,
Par AltarEt Silverlight, c'est loin d'être assez répandu (30% aux dernières info).
45% d'après microsoft
Techniques de "streaming" avec XMLHttpRequest
Publié le 31/12/2009 @ 18:36:25,
Par zionFacebook fait du polling, oui (à moins qu'ils aient changé depuis). Pour le proxy, pour peu que ton FAI t'en met un d'office, c'est un peu vache de dire "bien fait pour ta gueule"
Non, mais si tu produits une version "classique" et que le polling rajoute des fonctionnalités aux utilisateurs le supportant, je trouve que c'est un moins mauvais compromis
Je suis le Roy
Techniques de "streaming" avec XMLHttpRequest
Publié le 31/12/2009 @ 20:55:40,
Par TokirosJ'ai pas tout lu, j'ai pas trop de temps, mais ca peut être intéressant :
http://www.ape-project.org/
http://www.ape-project.org/
Techniques de "streaming" avec XMLHttpRequest
Publié le 01/01/2010 @ 15:59:41,
Par zionBon je bookmark, je commence à lire, leur script fonctionne et ils annoncent sans flash, sans java, et en streaming...
Question démo c'est pas mal réactif, faut décortiquer tout ça maintenant!
Question démo c'est pas mal réactif, faut décortiquer tout ça maintenant!
Je suis le Roy
Techniques de "streaming" avec XMLHttpRequest
Publié le 01/01/2010 @ 16:12:20,
Par zionBon, après une première analyse, en fait ils utilisent simplement une technique de l'IFrame mais avec une petite astuce pour éviter de voir la barre de chargement en continu.
Pas spécialement une mauvaise solution, sauf que dans mon cas vu que j'ai www.domaine.com pour le statique et www.domaine.com:81 pour le streaming l'IFrame a pas accès aux données du parent, donc c'est inutilisable ... (Pourtant j'aurais pensé qu'un simple changement de port n'allait pas être problématique mais aussi bien IE que Firefox bloque alors les interactions ... ).
Si j'ai bien pigé, eux ils jouent aussi avec un sous-domaine vu qu'ils utilisent un autre serveur qu'Apache.
Bon, bonne idée, mais à moins d'avoir deux IPs différentes, difficile de dire à un serveur de faire un listen sur le port 80 pour un domaine et un autre pour le sous domaine.
Ca implique quelques limitations comme solution
Pas spécialement une mauvaise solution, sauf que dans mon cas vu que j'ai www.domaine.com pour le statique et www.domaine.com:81 pour le streaming l'IFrame a pas accès aux données du parent, donc c'est inutilisable ... (Pourtant j'aurais pensé qu'un simple changement de port n'allait pas être problématique mais aussi bien IE que Firefox bloque alors les interactions ... ).
Si j'ai bien pigé, eux ils jouent aussi avec un sous-domaine vu qu'ils utilisent un autre serveur qu'Apache.
Bon, bonne idée, mais à moins d'avoir deux IPs différentes, difficile de dire à un serveur de faire un listen sur le port 80 pour un domaine et un autre pour le sous domaine.
Ca implique quelques limitations comme solution
Je suis le Roy