Sujet: Techniques de "streaming" avec XMLHttpRequest
31/12/2009 @ 17:50:19: zion: Techniques de "streaming" avec XMLHttpRequest
Plop,

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?
31/12/2009 @ 17:56:02: zion: Techniques de "streaming" avec XMLHttpRequest
5. http://www.pushlets.com/

:oh:

on dirait que ça répond à ma question... avec du java en fait! :oh:
31/12/2009 @ 17:57:03: gizmo: Techniques de "streaming" avec XMLHttpRequest
4: 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é.
31/12/2009 @ 18:00:11: zion: Techniques de "streaming" avec XMLHttpRequest
Et il existe des petits flash déjà tout prévus pour ça? Histoire de pas devoir se trouer le cul à tout réécrire?
31/12/2009 @ 18:00:36: gizmo: Techniques de "streaming" avec XMLHttpRequest
5. http://www.pushlets.com/

:oh:

on dirait que ça répond à ma question... avec du java en fait! :oh:


D'après ce que j'en lis, ca ressemble fort a du "3" ton "5" :oh:
31/12/2009 @ 18:04:54: zion: Techniques de "streaming" avec XMLHttpRequest
Sa mère :oh:

Bon et ton 4, t'as une piste sur le web pour que j'y trouve des infos? :oh:
31/12/2009 @ 18:06:30: gizmo: Techniques de "streaming" avec XMLHttpRequest
Et 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.
31/12/2009 @ 18:07:27: zion: Techniques de "streaming" avec XMLHttpRequest
http://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 :smile:
31/12/2009 @ 18:08:25: gizmo: Techniques de "streaming" avec XMLHttpRequest
http://dev.dschini.org/socketjs/ pourrait aussi être intéressant.
31/12/2009 @ 18:13:35: gizmo: Techniques de "streaming" avec XMLHttpRequest
http://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 :smile:


Oui, mais cette technique de requète en continu a plusieurs désavantages:
  1. Pas bien supporté par tous les browsers
  2. Ne marche pas avec tout une sériel de proxy qui font du caching
  3. 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.
31/12/2009 @ 18:16:42: Altar: Techniques de "streaming" avec XMLHttpRequest
Et silverlight, il pue ? :ocube: :jesors:
31/12/2009 @ 18:20:15: zion: Techniques de "streaming" avec XMLHttpRequest
Justement, 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? :tinostar: )

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 :oh: )
31/12/2009 @ 18:28:19: gizmo: Techniques de "streaming" avec XMLHttpRequest
Justement, 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? :tinostar: )

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 :oh: )



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).
31/12/2009 @ 18:31:23: Altar: Techniques de "streaming" avec XMLHttpRequest

Et Silverlight, c'est loin d'être assez répandu (30% aux dernières info).


45% d'après microsoft :tinostar:
31/12/2009 @ 18:36:25: zion: Techniques de "streaming" avec XMLHttpRequest

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"


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 :smile:
31/12/2009 @ 20:55:40: Tokiros: Techniques de "streaming" avec XMLHttpRequest
J'ai pas tout lu, j'ai pas trop de temps, mais ca peut être intéressant :

http://www.ape-project.org/
01/01/2010 @ 15:59:41: zion: Techniques de "streaming" avec XMLHttpRequest
Bon 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! :smile:
01/01/2010 @ 16:12:20: zion: Techniques de "streaming" avec XMLHttpRequest
Bon, 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 :figti:
Retour