GNT sans publicité, site mobile, fonctionnalitées exclusives...

Socket client/serveur.

Le
Jean-Christophe
Bonjour,

Je développe un serveur http avec les sockets windows,
et voudrais qu'aprés une première connection d'un browser
client au serveur (et réponse du serveur par l'envoi
d'une page html complète) le serveur puisse à sa propre
initiative rafraichir la page du browser client.
Pour etre plus clair, voici le topo :

1: Le browser client envoie sa requète au serveur
( http://serveur/ )

2: Le serveur répond en retournant une page html.

3: Lors d'un évènement nécéssitant une mise à jour,
le serveur renvoie au client une autre page html.

J'ai commencé par inclure dans l'en-tete html un auto-reload:
<meta http-equiv="refresh" content="10; URL=http://server/">
ca marche mais le problème est que ce n'est pas le serveur
lui-meme qui décide quand la page doit etre rafraichie.

Pour l'instant j'ai trouvé le truc suivant :
aprés envoi de la page html le serveur laisse
ouverte la socket et, lorque c'est nécéssaire,
envoie au browser la commande JavaScript:
window.location.replace("http://server/");
puis ferme la socket. Le browser client recontacte alors le
serveur comme si l'utilisateur avait lui-meme rafraichi la page.
Ca marche, mais coté serveur la socket doit rester ouverte,
et coté browser celui-ci peut tomber en time-out

Il faudrait quelque chose de plus efficace.
Existe-t'il un moyen de renvoyer une page html
vers le browser client, en remplacant l'ancienne page ?
Lire les 10 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Nicolas George
Le #22861351
Jean-Christophe , dans le message
écrit :
Je développe un serveur http avec les sockets windows,



Toutes mes condoléances.

et voudrais qu'aprés une première connection d'un browser
client au serveur (et réponse du serveur par l'envoi
d'une page html complète) le serveur puisse à sa propre
initiative rafraichir la page du browser client.



Le HTTP ne le permet pas.

On peut faire vaguement ça avec de l'AJAX et du COMET (où le browser envoie
une requête et le serveur tarde à y répondre), mais c'est gore.
Jean-Christophe
Le #22861461
On Nov 29, 2:19 pm, Nicolas George

Le HTTP ne le permet pas.



Pourtant j'y arrive en laissant la socket ouverte
et en envoyant un window.location.replace()
et le tout fonctionne correctement sous IE et FireFox.
Mais ce qui me gène est la contrainte
de laisser la socket ouverte coté serveur.

On peut faire vaguement a avec de l'AJAX et du COMET (o le browser
envoie une requ te et le serveur tarde y r pondre), mais c'est gore.



Hélas je n'ai que winsock à ma disposition.
J'ai vu des sites ou des infos sur la page html client sont
mises à jour à l'initiative du serveur, comme par exemple
permettre aux connectés de discuter dans une fenètre :
est-il vraiment impossible d'implémenter
cela sous http juste avec winsock ?

Ou peut-etre peux-tu me rediriger vers
un newsgroup plus adéquat sur ce sujet ?
Pascal Hambourg
Le #22861671
Salut,

Jean-Christophe a écrit :

Ou peut-etre peux-tu me rediriger vers
un newsgroup plus adéquat sur ce sujet ?



Voir du côté des fr.comp.infosystemes.www.*.
Olivier Miakinen
Le #22861821
Bonjour,

Le 29/11/2010 14:45, Jean-Christophe a écrit :

Le HTTP ne le permet pas.



Pourtant j'y arrive en laissant la socket ouverte



Cela revient à ce qu'écrivait Nicolas :

[...] (o le browser
envoie une requ te et le serveur tarde y r pondre), mais c'est gore.





Je suis du même avis : tarder à « r pondre » à la « requ te », c'est gore.

Ét cêt ïmbéçîlë dë Gôôglë grôüpës qùî vîrë lès lèttrës âvèç äcçënts
ç'èst gôrë àùssï.

Cordialement,
--
Olivier Miakinen
benoit.sansspam
Le #22862571
Olivier Miakinen
Bonjour,

Le 29/11/2010 14:45, Jean-Christophe a écrit :
>
>> Le HTTP ne le permet pas.
>
> Pourtant j'y arrive en laissant la socket ouverte

Cela revient à ce qu'écrivait Nicolas :

>> [...] (o le browser
>> envoie une requ te et le serveur tarde y r pondre), mais c'est gore.

Je suis du même avis : tarder à « r pondre » à la « requ te », c'est gore.

Ét cêt ïmbéçîlë dë Gôôglë grôüpës qùî vîrë lès lèttrës âvèç äcçënts
ç'èst gôrë àùssï.



J'irai plus loin et je retirerais des voyelles pour ne pas
prendre trop de bande passante :

l brwsr nvoi ne rqut et l srvr trd rpndr, ms c'st gr.







--
Benoît http://www.duvallois.com/

Avec des fumeurs c'est difficile de s'arrêter. Avec des branleurs,
là, par contre, c'est difficile de continuer.
Publicité
Suivre les réponses
Poster une réponse
Anonyme