Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
866 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [Web] Serveur vers client

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Web] Serveur vers client

n°2106198
Blob177
Posté le 13-10-2011 à 16:04:04  profilanswer
 

Bonjour,
 
je n'ai pas vraiment trouvé la réponse à mes questions par mes recherches.
j'ai une expérience de développement de sites en architectures client / serveur, le client demande, le serveur répond. ( client navigateur, serveur apache php )
je voudrais savoir s'il est possible d'envoyer de l'info vers le client sans requête de sa part.
pour une appli type chat ou jeu multi-joueur.
je connais la solution où le client vient aux nouvelles régulièrement, je voulais savoir si c'est la seule possible, car ça fait beaucoup de requêtes si on veut un délai de réponse faible.
j'espère que ma question au moins est clair, merci de vos réponses.

mood
Publicité
Posté le 13-10-2011 à 16:04:04  profilanswer
 

n°2106251
Mara's dad
Yes I can !
Posté le 13-10-2011 à 19:16:35  profilanswer
 

Avec les techniques modernes, il est possible de transformer un client en serveur.
Regarde du coté des web-sockets.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°2106273
Blob177
Posté le 13-10-2011 à 21:27:31  profilanswer
 

Ok merci, je vais regarder ça.
Et si j'y pense, je renverrai la liste des erreurs constatées.

n°2106339
rufo
Pas me confondre avec Lycos!
Posté le 14-10-2011 à 09:58:49  profilanswer
 

L'autre technique est de faire du polling (en ajax) : chaque client, périodiquement, interroge le serveur pour savoir si y'a du neuf à récupérer...


Message édité par rufo le 14-10-2011 à 09:59:00

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2106341
FlorentG
Unité de Masse
Posté le 14-10-2011 à 10:06:22  profilanswer
 

Si ça n'a pas changé, c'est ce qu'ils font sur Facebook, du polling. Une requête via AJAX est lancée toutes les x secondes

n°2106363
rufo
Pas me confondre avec Lycos!
Posté le 14-10-2011 à 12:02:44  profilanswer
 

Ben c'est standard et facile à implémenter. :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2106378
Mara's dad
Yes I can !
Posté le 14-10-2011 à 13:52:02  profilanswer
 

Oui, mais c'est caca le pooling !
Ça fait plein de requêtes pour rien la plupart du temps.
Si c'est pour un nouveau projet, autant prendre des technos modernes non ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°2106384
LeRiton
Posté le 14-10-2011 à 14:04:41  profilanswer
 

Mara's dad a écrit :

Oui, mais c'est caca le pooling !
Ça fait plein de requêtes pour rien la plupart du temps.
Si c'est pour un nouveau projet, autant prendre des technos modernes non ?

 

Le pooling ça utilise les technos web comme elles devraient l'être : stateless, donc scalable.
Si le résultat des requêtes est correctement caché (comme dans cache, pas planqué :o), tes requêtes sont transparentes pour le systèmes, et utilisent certainement moins de bande passante que le keepalive d'une quelconque socket.


Message édité par LeRiton le 14-10-2011 à 14:04:56
n°2106390
rufo
Pas me confondre avec Lycos!
Posté le 14-10-2011 à 14:16:00  profilanswer
 

C'est clair, +1 :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2106405
Mara's dad
Yes I can !
Posté le 14-10-2011 à 14:55:47  profilanswer
 

Tout dépend du niveau de réactivité, du nombre de client et de la durée des sessions.
 
J'avoue avoir été un peu dur avec le pooling, mais j'en ai plein les progs que je maintient (pas que des applis Web...) et la plupart du temps on sens que ça à été programmé comme ça parce-que c'était le seul modèle disponible dans la tête du concepteur. (Sauf pour les applis web !)
 
Plus ça va et plus je cherche à les éliminer pour arriver vers un modèle événementiel ou la seule chose qui désigne le client, c'est l'initiateur de la connexion.
Ensuite tout le monde il est égaux, et chacun ne parle que quand il a quelque-chose à dire.
 
Exemple :
Je maintiens un soft qui gère le matériel sur une borne (lecteur de badge, imprimante, monnayeur, terminal de paiement...).
L'interface utilisateur est gérée par un navigateur qui affiche la page web d'un serveur local ou non.
La communication entre le navigateur et ce soft n'était possible jusqu'à récemment qu'à l'initiative du client qui devait lui faire sans arrêt des requêtes en javascript (via une applet Java).
Le protocole était super compliqué, et pas réactif du tout.
On est en train de passer dans un modèle ou le client ouvre un socket bidirectionnel vers le soft de gestion du matos.
A partir de là, tout devient purement événementiel, le soft de gestion du matos n'a plus une seule règle de gestion à implémenter et on vire la couche Java !
 
A+


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
mood
Publicité
Posté le 14-10-2011 à 14:55:47  profilanswer
 

n°2106408
LeRiton
Posté le 14-10-2011 à 15:06:42  profilanswer
 

Ma remarque pour la défense du pooling était évidemment à inscrire dans un contexte Web/HTTP.
Ceci dit, pour ton exemple, tu te plains de l'ancien protocole, mais vous auriez aussi bien pu l'épurer que d'en construire un autre basé sur les sockets.
Parce que là, en cas de montée en charge, t'as deux choix : scaling vertical ou suicide.

n°2106409
rufo
Pas me confondre avec Lycos!
Posté le 14-10-2011 à 15:08:51  profilanswer
 

Citation :

du client qui devait lui faire sans arrêt des requêtes en javascript (via une applet Java).


Du javascript qui passe par une applet java :??:
 

Citation :

pour arriver vers un modèle événementiel


Tu sais que bien souvent, le captage des événements est fait via une boucle while, donc du polling (sous Windows 98, XP..., il me semble que c'est comme ça au niveau "bas niveau" ) :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2106437
Mara's dad
Yes I can !
Posté le 14-10-2011 à 17:38:02  profilanswer
 

Citation :

Du javascript qui passe par une applet java :??:


La communication entre le javascript et le soft local se fait par une connection tcp via une applet Java.
Javascript ne peut le faire que récemment ( ce qu'on appelle AJAX), et encore, au début d'ajax c'était à condition de ne communiquer qu'avec le serveur web d'origine, ce qui n'est pas le cas.
 
 

Citation :

Tu sais que bien souvent, le captage des événements est fait via une boucle while, donc du polling (sous Windows 98, XP..., il me semble que c'est comme ça au niveau "bas niveau" ) :/


Oui, je sais merci.
Mais, ce n'est pas le cas par exemple pour la lecture d'un badge.
Dans le daemon, c'est un thread qui s'en occupe, et il fait un read bloquant sur un port série.
Donc dès que le read répond, c'est un événement.
Idem pour le monnayeur et le terminal de paiement.
 
Dans le modèle pooling, le javascrip passe sont temps à appeler une fonction java, qui appelle le daemon qui regarde si le thread concerné à une info à remonter.
Il y a eu une autre version encore plus chiante :
Le javascrip appelle une fonction java, qui appelle le daemon qui demande fait une lecture bloquante.... Et tout reste bloqué tant qu'on a pas de réponse.
Pendant ce temps, impossible d'imprimer ou autre.
Ce n'était pas grave en soit, le fonctionnement de l'appli implique que le premier événement soit une lecture de badge.
Mais ce mode de fonctionnement implique que tous les composants de la solution soient programmés en fonction de cette règle, alors qu'elle n'a de sens que pour un seul.
 
Bon, mais là je pense qu'on est un peu HS...
 
C'était juste mon coup de gueule du Vendredi "Marre du pooling" !
 
Bon week-end à tous.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Web] Serveur vers client

 

Sujets relatifs
[PHP] Ouvrir un fichier sur un serveur distantServeur WAMP portable
transformation du fichier XML vers TEX avec XSLTRécupération de la date et de lheure sur un serveur de temps.
SERVEUR VOCAL INTERACTIF VOICE XMLDu langage WEB au composant interne
faire un programme qui s'execute cotée serveurTraduire vers Fortrant 90
Copie conditionnelle d'une colonne de T1 vers une colonne de T2Convertisseur html vers PDF en ligne de commande
Plus de sujets relatifs à : [Web] Serveur vers client


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR