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

Zend Framework PHP Discussion :

Application temps réel et zend : chat


Sujet :

Zend Framework PHP

  1. #1
    Membre confirmé Avatar de Phiss
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2005
    Messages
    676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2005
    Messages : 676
    Points : 616
    Points
    616
    Par défaut Application temps réel et zend : chat
    Bonjour,

    Je souhaite faire une application sous Zend qui implique du temps réel.
    Je m'explique.
    Sur le site il y aura un chat qui doit être lié à d'autres partie du site.
    Le site en lui même est développé avec Zend donc je voulais faire le chat sur la même base.
    Ce qui me vient à poser comme question :
    Comment gérer les applications en temps réel sous Zend?
    Comme peut on faire pour rafraichir une page tout ou en partie sans que cela soit trop lourd pour le serveur?

    Merci.

    Pour info, j'ai chercher sur google des liens sur des chat avec zend mais tous me renvoi sur un site dont les sources sont sur un lien mort.
    " L'absence diminue les médiocres passions et augmente les grandes, comme le vent éteint les bougies et allume le feu. "
    La Rochefoucauld

  2. #2
    En attente de confirmation mail

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Points : 637
    Points
    637
    Par défaut
    Je dirais que tout est une question de volumétrie et de performances attendues... Mais à mon avis un "moteur" de chat avec Zend Framework, si il est bien optimisé, utilisé conjointement avec un code Javascript qui communique via des requêtes AJAX suffirait à résoudre ton problème.

    Par contre le terme de "temps réel" me gêne un peu, tu n'auras pas vraiment de temps réel au sens où le serveur n'enverra pas de données "en push" vers le navigateur, c'est le navigateur qui va interroger le serveur régulièrement pour voir si il y a du nouveau à afficher.

    J'avoue aussi avoir un peu peur de t'avoir répondu totalement à coté

  3. #3
    Membre confirmé Avatar de Phiss
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2005
    Messages
    676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2005
    Messages : 676
    Points : 616
    Points
    616
    Par défaut
    Merci Nighty pour ta réponse. Rassure toi tu es bien dans le sujet.


    Je me suis lancé dans l'ajax afin de créer mon chat sous zend.
    En fait ce qui me gène c'est la montée de la charge sur les serveur lors de l'appel de la page.
    Du coup, si il y a plusieurs personnes, cela risque de très vite saturé le site.

    je clôture pour le moment, vu que je me lance dans la programmation de cette partie.
    " L'absence diminue les médiocres passions et augmente les grandes, comme le vent éteint les bougies et allume le feu. "
    La Rochefoucauld

  4. #4
    En attente de confirmation mail

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Points : 637
    Points
    637
    Par défaut
    Je pense que tu peux considérablement optimiser ton chat Ajax, à la condition que le cahier des charges n'imposent de grosses contraintes de sécurité. En gros, si tout le monde, nouvel arrivant ou non, doit voir la même chose (par exemple les 30 dernières lignes) on peut imaginer mettre en cache le contenu qui sera servi à tous les utilisateurs.

    Attention toutefois tout ce que je vais dire là est très théorique, je n'ai jamais concrétisé d'application de ce genre... Mais à mon avis si tu définis le refresh à un délai raisonnable (pas plus rapide que 500ms) et que tu utilises un cache assez agressif niveau performance (par exemple le tout récent cache Static http://framework.zend.com/manual/en/...ackends.static ), il te suffira de regénérer un nouveau cache à chaque fois que quelqu'un envoie un message. Entre temps, chaque refresh sera équivalent à un appel serveur vers une page html...

    Encore une fois c'est très théorique, mais à mon avis ça devrait tourner.

  5. #5
    Membre confirmé Avatar de Phiss
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2005
    Messages
    676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2005
    Messages : 676
    Points : 616
    Points
    616
    Par défaut
    Bonjour,

    Merci pour ce dernier message.
    J'ai essayé de mettre en cache les données mais c'est pas forcément mieux.
    Que je passe par le cache ou l'exécution complète de la requête le serveur prend le même niveau de charge CPU.

    Bon pour le moment je passe par le cache du Zend_Registry.
    Le cache Static Zend_Cache_Backend_Static est il plus performant?
    Est il plus dur à mettre en place?

    Merci.
    " L'absence diminue les médiocres passions et augmente les grandes, comme le vent éteint les bougies et allume le feu. "
    La Rochefoucauld

  6. #6
    En attente de confirmation mail

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Points : 637
    Points
    637
    Par défaut
    C'est marrant ça, j'étais persuadé avoir répondu, visiblement je n'avais répondu que dans ma tête

    Il vaut mieux regarder dans la doc sur ce point, car tout ce que je vais dire est le résultat d'un survol de la doc à la sortie de la 1.10 et j'ai peut-être mal interprété le fonctionnement du backend static.

    De ce que j'ai compris, le cache static permet de transformer le résultat d'un appel à l'application en page html.

    L'intérêt est qu'au delà du premier appel, l'application ne sera même pas utilisée ce qui devrait se solder par une très faible consommation de ressources.

    L'inconvénient, c'est qu'il faut qu'un autre appel puisse supprimer le fichier statique pour que l'application soit à nouveau appelée et que le cache soit mis à jour. Ca peut être très compliqué à mettre en place, mais dans le cas d'un chat ça me parait assez naturel.

    Voilà comment je "sens" la chose :
    Quelqu'un écrit un message, le contrôleur concerné est appelé, il enregistre le message et génère un nouveau fichier de cache.

    Quelqu'un "ping" le serveur pour réactualiser l'affichage : le serveur a juste à servir le fichier HTML, pas de scripts php, pas de requête...

    Ca demande à être creusé mais en gros, l'application sera sollicité une fois par nouveau messages, pour le reste le serveur ne subira "que" 2 appels par seconde par utilisateur sur un même fichier HTML. Par contre comme je l'ai mentionné avant, ça implique que tous les utilisateurs de la chat room voient la même chose...

  7. #7
    Membre confirmé Avatar de Phiss
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2005
    Messages
    676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2005
    Messages : 676
    Points : 616
    Points
    616
    Par défaut
    Merci de cette réponse écrite. :-D
    J'ai encore du mal avec la télépathie...

    Lorsque tu dis que tous les utilisateurs du chat doivent vois la même chose, cela veut dire quoi exactement?
    Qu'il ne peut y avoir qu'un seul salon, un seul cache de se type?
    Dans ce cas je vais devoir chercher plus loin car je dois avoir la possibilités de gérer plusieurs salons.

    Je vais aller essayer de voir plus en détails.
    " L'absence diminue les médiocres passions et augmente les grandes, comme le vent éteint les bougies et allume le feu. "
    La Rochefoucauld

  8. #8
    En attente de confirmation mail

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Points : 637
    Points
    637
    Par défaut
    Rien n'empêche de gérer plusieurs salon, il suffirait dans ce cas d'avoir un fichier de cache par salon.

    Là où ça deviendrait plus compliqué, voire ingérable avec ce système, c'est surtout au niveau des droits.

    Par exemple, un utilisateur qui arrive sur le chat à 13h40 doit il voir ce qui a été dit à 13h39 ? Selon ce système, pas le choix : tout le monde sur un même salon voit la même chose.

    Plus problématique, si des salons doivent être privés, alors il faut authentifier la personne avant de lui renvoyer les données, ce qu'une page html ne peut évidemment pas faire. On peut restreindre l'accès au salon sans problème, mais un utilisateur malin pourrait sans mal récupérer le contenu du fichier de cache pour espionner ce qui se dit...

    En bref si tu veux un petit chat intégré à une application ça devrait pouvoir se faire sans trop de mal, si tu veux quelque chose de vraiment pointu tu devrais chercher du côté de l'existant, voire du côté de client irc embarqué, mais là je ne peux vraiment pas t'aider

  9. #9
    Membre confirmé Avatar de Phiss
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2005
    Messages
    676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2005
    Messages : 676
    Points : 616
    Points
    616
    Par défaut
    Ok, merci.

    Par contre j'ai un peu de mal avec la doc tout en anglais en sachant en plus que Zend n'est pas ma spécialité.

    pour le cache Zend_Cache_Backend_Static, tu aurais pas une mise en place complète ou une direction à m'indiquer?

    La j'ai compris que pour qu'il marche je dois l'associer avec le Zend_Cache_Frontend_Capture mais je n'ai pas saisi comment modifier mon .htaccess dans tout ça.
    " L'absence diminue les médiocres passions et augmente les grandes, comme le vent éteint les bougies et allume le feu. "
    La Rochefoucauld

  10. #10
    En attente de confirmation mail

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Points : 637
    Points
    637
    Par défaut
    Là par contre, ne l'ayant jamais déployé et n'ayant pas forcément le temps à l'heure actuelle, j'ai peur de ne pas pouvoir t'aider beaucoup plus.

    Peut-être qu'en fouillant un peu sur le net tu trouveras des exemples de mise en place ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 25
    Points
    25
    Par défaut Conseil pour du vrai temps réel
    Un petit truc pour faire du vrai temps réel avec php ( donc push ou mode interactif ) c'est meteorserver.org, je vous le conseil c'est écrit en PERL. En gros vous balancez des données coté php et vous les récupéré en javascript via une fonction callback. Par contre il faut un serveur qd même costaud et c'est sur linux pour infos.

Discussions similaires

  1. Modélisation des application temp réel avec SART et HOOD
    Par foufou.mr dans le forum Autres langages
    Réponses: 0
    Dernier message: 08/03/2013, 10h37
  2. Méthodes virtuelles pour applications temps-réel
    Par valefor dans le forum Langage
    Réponses: 6
    Dernier message: 19/07/2012, 18h50
  3. Application temps réel
    Par black_ghost dans le forum Windows Communication Foundation
    Réponses: 2
    Dernier message: 24/02/2012, 09h26
  4. exemple d'application temps réel à but pédagogique
    Par christianf dans le forum Robotique
    Réponses: 3
    Dernier message: 19/11/2008, 20h44
  5. Application Temps réel ASP.NET
    Par malayika dans le forum ASP.NET
    Réponses: 8
    Dernier message: 23/09/2008, 19h10

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