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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Par défaut design pattern sockets lecture/écriture
    Bonjour,

    je suis à la recherche d'une solution élégante afin de pouvoir lire et écrire sur une socket php.

    Tout d'abord la connexion de la socket se fera via une requête ajax qui initialisera une variable 'online' stockée en bdd et lancera la procédure de connexion.
    Une fois la connexion correctement établit j'aimerais pourvoir lire en boucle sur la socket afin de stocké dans une bdd ou un fichier log, tout en pouvant écrire dessus.

    Je suis ouvert à toute réflexions, propositions, suggestions...
    Est-il préférable de faire ça d'une autre façon, un autre langage?

  2. #2
    Membre Expert Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Par défaut
    Tu parles AJAX et PHP donc j'imagine que tu veux développer une appli Web.

    Tu ouvres une socket avec une requête AJAX? AJAX c'est XMLhttprequest, c'est donc une requête http et non une ouverture de socket....

    Pour répondre à ta question, oui AJAX est adapté pour effectuer des actions de lecture/mise à jour de données BDD ou LOG. Après c'est faisable aussi sans AJAX, le seul interêt de l'AJAX étant de faire tout ça sans recharger ta page.

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Par défaut
    en faite la requête AJAX c'est juste pour lancer le script PHP qui s'occupera de la connexion puis de la lecture/écriture de la socket

  4. #4
    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 : 37
    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 effectivement possible, tu te sers d'Ajax pour piloter un trigger PHP qui, in-fine, lance une commande quelconque (en l'occurence ouvrir une socket).

    Le seul hic: une fois que tu auras ouvert ta socket, tu sera obligé de terminer le script PHP, sinon le XHR restera pendu en attente de réponse... Or, une fois le script terminé, tu perdras le handle de ta socket et il n'y a aucun moyen de le persister (les handles de ressources ne sont jamais sérialisables). A la limite, si tu es en PHP 5.3 sur un serveur dédié, tu peux créer un daemon PHP qui lui sera capable de garder et traiter la socket jusqu'a ce qu'on lui dise (par un autre trigger) d'arrêter sont travail. J'avais trouvé un article là dessus, le voici: http://devlog.info/2010/03/07/creating-daemons-in-php/

    Il faudrait davantage de détails sur ce que tu souhaite faire pour qu'on te guide.

  5. #5
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Par défaut
    j'aime bien cette idée. c'est un peu ce que je recherche.
    Je voulais comme lancer un thread qui pourrait effectuer des opérations (lecture en continu et écriture) sur une socket.

    En faite j'ai un serveur qui m’enverra des infos une fois connecté et auquel je pourrais envoyer des commandes. je voudrais donc récupérer ces infos pour en faire un log pour ensuite les utiliser.

  6. #6
    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
    Et pourquoi absolument avec PHP ? de ce que tu en dis , tu veux faire un daemon qui écoute une socket réseau en permanance. PHP est tout sauf le plus adapté pour ce genre d'exercice.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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