IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Streaming vs Comet & proxy


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de r1-1024
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 138
    Par défaut [AJAX] Streaming vs Comet & proxy
    Bonjour à tous,
    Ce post est détourné de celui-ci http://www.developpez.net/forums/d81...e/#post4667316

    Le but étant de trouver une solution fiable à l'envoie d'évènements serveur->client (peu importe des technos sous-jacentes).
    Évidement il ne faut perdre aucun évènement.

    Deux solutions s'offrent à nous :
    1-Le Streaming (keep alive de la connexion)
    2-le Comet (timeout long)

    Bien sûr 1 est plus facile à gérer que 2, et on peut imaginer tout un tas d'artifices afin d'alléger l'engorgement du serveur.

    La question principale se pose à propos des proxys (car je ne sais absolument pas comment ça fonctionne en interne).

    Même si on parle d'http, j'aimerai savoir si le tcp (sous-jacent) assure la transmission des données lors d'un flush sans erreur.

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //en langage abstrait évidement
    io_http=new io_http(io_tcp)
    io_http.write("Hello")
    io_http.flush()
     
    if(no_error) {transmission assurée coté client}
    else {echec de la transmission certain, i.e. le client à une erreur sur le bloc de donnée "Hello"}
    Cette partie assure t elle que l'écriture de l'évènement est fiable (condition 1) ?

    A travers un proxy maintenant.
    Si 1 est vérifié, le flush assure alors la réception de "Hello" par le proxy mais assure t il aussi la réception par le client ? (Condition 2)
    Y a t il un mécanisme tcp (genre bind) afin d'assurer 1 à travers un tiers ?

    Vu que tcp est basé sur l'échange de paquets, il me semble vraisemblable que 1 et 2 soient vérifiés (ex: routeus). Mais le proxy doit analyser le contenu (ce qui le différencie grandement d'un routeur).

    Merci

  2. #2
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Salut,

    Concernant la condition 1, je dirais que oui puisque c'est le principe de TCP de s'assurer de la bonne réception des données qu'il envoie (système d'acquittement). J'imagine que si l'écriture échoue, la méthode va lever une IOException quelconque, tu seras alors capable de la traiter.

    Concernant la conditon 2, je dirais aussi que oui. Cependant, je ne pense pas qu'il existe un moyen automatique de s'en assurer; il faudrait plutot que le proxy écrive une réponse au serveur en fonction du succès (ou non) de la requete qu'il a retransmis au client.

    Une petite chose en plus: je pense que beaucoup de navigateurs seront incapables de gérer une connexion persistante (ie6 entre autres pour ne pas le citer).

  3. #3
    Membre confirmé Avatar de r1-1024
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 138
    Par défaut
    De toute façon on peut lire dans le flux jusqu'à ce qu'on aient une erreur.

    Je pense qu'on est de toute façon dans la situation suivante :
    -la condition 1 est vraisemblablement vérifiée.
    -la condition 2 dépend du proxy (donc autant ne pas prendre de risque et dire que ça ne fonctionne pas) : donc rien ne peut certifier la réception de l'évènement à part le client.
    -suivant les navigateurs on ne peut pas avoir un keep alive

    Donc il faut essayer le keep alive (c'est toujours mieux) mais de toute façon s'attendre à une coupure. Donc ça revient à du comet.

    Considérant tout ça, on est obligé d'avoir à gérer la réception des messages nous même je pense.

    Si qq'un à une idée/retour pour implémenter cette gestion j'suis preneur.

Discussions similaires

  1. Reverse Ajax, Server Push, bref, COMET
    Par ZeNenex dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 13/07/2011, 09h29
  2. chat, webcam, javascript, ajax, streaming
    Par seb92400 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 28/02/2009, 15h40
  3. [AJAX] [JS] Chargement de map en streaming
    Par baddark dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/02/2009, 13h00
  4. Comet, ou le futur d'AJAX?
    Par wenijah dans le forum Autres langages pour le Web
    Réponses: 3
    Dernier message: 04/01/2008, 14h58
  5. [AJAX] Ajax en mode proxy
    Par Keroth dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 06/07/2006, 17h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo