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

Langage PHP Discussion :

design pattern sockets lecture/écriture


Sujet :

Langage PHP

  1. #21
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Tu peux expliquer un peu plus, j'ai pas saisie le rafraîchissement des données, quelles données?
    Je partais du principe que tu souhaitais faire quelque chose comme le tuto. Donc les données dont je parle aurait été les données d'état du serveur par exemple , qui n'ont pas forcément besoin d'être lue en permanence.

    Je pense que l'idée de daemons n'est pas mauvaise, en limitant leur nombre.
    Je voudrais juste lire en permanence ce qu'il a sur la socket afin d'intercepter certains messages.
    Si tu n'es pas certains d'avoir le contrôle total sur la config du serveur , tu ne pourras pas le faire en php.
    Comme dis précédemment , les hébergeurs mutualisé qui laisse accès au socket ne sont pas nombreux. De plus un daemon tourne en permanence , tu seras donc bloquer par le set_time_limit général défini très bas en mutualisé.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  2. #22
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Par défaut
    ok donc la solution serait de détecter l'autorisation d'utiliser les sockets et de proposer la fonctionnalité.

    Et du côté des autres langages, comme ASP, CGI?
    ou un appel system() qui lancerai un programme qui ferait se boulot

  3. #23
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Même problème , l'appel à system n'est pas possible sur du mutualiser. En CGI peut être , j'avoue n'en avoir jamais utilisé.
    La détection des socket est une idée mais ça résoudra pas le fait que généralement le temps max d'execution d'un script est de moins de 30 sec. Sans compter les limitation de mémoire généralement assez rude.

    Bref un outil comme celui ci , portable partout c'est une utopie
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #24
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    C'est éventuellement possible si tu fais tourner le logiciel sur une plateforme dédiée, responsable de l'ouverture / fermeture / lecture / écriture sur la socket avec un Daemon comme vu précédemment et que cette plateforme expose un webservice REST ou SOAP attaquable par des sites classiques hébergés sur des serveurs mutualisés.

  5. #25
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    C'est éventuellement possible si tu fais tourner le logiciel sur une plateforme dédiée, responsable de l'ouverture / fermeture / lecture / écriture sur la socket avec un Daemon comme vu précédemment et que cette plateforme expose un webservice REST ou SOAP attaquable par des sites classiques hébergés sur des serveurs mutualisés.
    Je pense que dans l'idée son système permet à l'utilisateur qui l'installe de controler son serveur de jeu. Ce qui voudrais dire que son webservice devrais gérer tous les serveurs de tous ses utilisateurs ... Un peu ambitieux je pense
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #26
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Par défaut
    c'est en étant ambitieux qu'on apprend le plus de choses, je pense, quand on s'en donne les moyens.

    donc si on considère qu'on a accès aux sockets php et qu'on peut modifier le set_time_limit ( d’ailleurs pourquoi ne pourrait t-on pas le modifié sur un serveur mutualisé? avec la fonction set_time_limit() sauf en safe-mode qui est déprécié ???) comment pourrais-je communiqué avec le daemon?

    pour la lecture sur le socket je vois bien (en écrivant dans un fichier pour le lire par la suite) mais pour l'écriture dois je utiliser la même méthode mais à l'envers (écrire dans fichier la commande pour ensuite la lire et l'écrite sur la socket) ou existe t-il une solution meilleure?

    sinon pour la gestion de la socket j'avais pensé à un select comme dans cette exemple http://broux.developpez.com/articles/c/sockets/#L4-1
    qu'en pensez vous?

  7. #27
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Citation Envoyé par rgamor Voir le message
    c'est en étant ambitieux qu'on apprend le plus de choses, je pense, quand on s'en donne les moyens.
    Moi aussi je peux faire des phrases toute faites comme par exemple: "A vouloir s'attaquer dès le départ à un trop gros morceau, on finit par se décourager..." Je pense que tu devrais viser moins haut pour commencer, surtout si tes compétences en programmation son limitées au départ (enfin, ça c'est à toi de nous dire ce que tu sais faire ). On a tous démarré en bas de l'échelle, pour moi par exemple, l'apprentissage de PHP s'est fait au sein d'une équipe sur un projet bateau de site internet.

    Mon but n'est pas de décourager mais je pense que l'apprentissage est un processus long qui doit se dérouler par étapes. On a jamais vu un professeur de primaire demander à ses élèves une rédaction de 60 pages sur Bergson.

    pour la lecture sur le socket je vois bien (en écrivant dans un fichier pour le lire par la suite) mais pour l'écriture dois je utiliser la même méthode mais à l'envers (écrire dans fichier la commande pour ensuite la lire et l'écrite sur la socket) ou existe t-il une solution meilleure?
    PHP te permet de manipuler naturellement les sockets. Pour plus de détails je t'invite à consulter la doc: http://php.net/manual/en/book.sockets.php

  8. #28
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Moi aussi je peux faire des phrases toute faites comme par exemple: "A vouloir s'attaquer dès le départ à un trop gros morceau, on finit par se décourager..." Je pense que tu devrais viser moins haut pour commencer, surtout si tes compétences en programmation son limitées au départ (enfin, ça c'est à toi de nous dire ce que tu sais faire ). On a tous démarré en bas de l'échelle, pour moi par exemple, l'apprentissage de PHP s'est fait au sein d'une équipe sur un projet bateau de site internet.

    Mon but n'est pas de décourager mais je pense que l'apprentissage est un processus long qui doit se dérouler par étapes. On a jamais vu un professeur de primaire demander à ses élèves une rédaction de 60 pages sur Bergson.
    c'était pas une phrase toute faite! j'aurais cité l'auteur sinon.
    Et puis c'est la façon dont je fonctionne, j'ai besoin d'un projet ambitieux pour étendre mes connaissances. Chacun son mode d'apprentissage!

    J'ai posté sur ce forum car je n'ai aucune connaissance des bonnes pratiques en rapport avec ce que je voulais faire. Et aussi pour profiter de votre expérience en application web.
    Car je pense qu'il y a une grande différence entre savoir coder (code qui fonctionne) et coder correctement (cad selon des design pattern ou des méthodes qui ont faits leurs preuves et donc un code efficace).

    Et il y a bien un moment, ou les bases c'est bien, faire des trucs simple c'est bien, mais y'a un moment faut décollé.

    Ton lien ne répond pas à ma question, qui était en gros "Comment communique t'on avec le daemon? avec un fichier ou y'a t'il une méthode plus élégante?
    Le daemon sert juste à lire la socket et il vaut mieux créer une socket pour chaque demande d'envoie de commande au serveur de jeux?

  9. #29
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Citation Envoyé par rgamor Voir le message
    Car je pense qu'il y a une grande différence entre savoir coder (code qui fonctionne) et coder correctement (cad selon des design pattern ou des méthodes qui ont faits leurs preuves et donc un code efficace).
    C'est tellement vrai Enfin, il ne faut pas non plus ne jurer que par les design pattern, j'avais justement un excellent article là dessus: http://www.croes.org/gerald/blog/nut...9/#comment-529

    Citation Envoyé par rgamor Voir le message
    Ton lien ne répond pas à ma question, qui était en gros "Comment communique t'on avec le daemon? avec un fichier ou y'a t'il une méthode plus élégante?
    Comme mentionné dans l'article sur les daemons cité plus haut; le meilleur moyen de communiquer avec un daemon est d'utiliser les signaux posix. S'il s'agit de piloter un daemon sur une machine externe, on peut toujours envisager une couche de webservices capable d'envoyer ces signaux sur demande extérieure.

    Citation Envoyé par rgamor Voir le message
    Le daemon sert juste à lire la socket et il vaut mieux créer une socket pour chaque demande d'envoie de commande au serveur de jeux?
    Plus exactement, le daemon garde la socket ouverte et travaille dessus.

  10. #30
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Par défaut
    je suis tout à fait d'accord avec l'article.

    mais avec les signaux on ne peut pas transmettre une chaîne de caractères, donc quand le daemon reçoit un signal particulier il faut qu'il ouvre un fichier pour y cherché la commande?

  11. #31
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Par défaut
    avec une socket server dans le daemon est une bonne solution?

Discussions similaires

  1. Lecture du livre 'Design Pattern Tete la premiere'
    Par kaneelhadji dans le forum Livres
    Réponses: 20
    Dernier message: 06/02/2012, 09h47
  2. Socket : lecture et écriture simultanée
    Par poukill dans le forum C++
    Réponses: 6
    Dernier message: 30/06/2010, 16h53
  3. Problèmes de lecture/écriture sur deux sockets
    Par Popof dans le forum Linux
    Réponses: 2
    Dernier message: 26/11/2009, 23h14
  4. Problème de lecture/écriture avec les sockets
    Par mrttlemonde dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 09/10/2009, 11h12
  5. [Perl] lecture/écriture simultanées sur une socket
    Par sephiburp dans le forum Programmation et administration système
    Réponses: 10
    Dernier message: 16/10/2007, 10h25

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