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