Conversation serveur client php CLI ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

30 oct. 2015, 15:45

Ok, donc le principe c'est :
1) un logiciel sur le PC du client est lancé en background par le planificateur des taches
2) ce logiciel va interroger ton serveur savoir si doit faire quelque chose
3) Si c'est le cas, le serveur renvoie au PC client un code ou un texte
4) Et ce code ou texte va être interprété par le logiciel sur le PC du client pour afficher un message ou renvoyer des infos

C'est ça ?
Quand tout le reste a échoué, lisez le mode d'emploi...

echo55
Invité n'ayant pas de compte PHPfrance

30 oct. 2015, 16:19

Presque :

1) un logiciel sur le PC du client est lancé en background par le planificateur des taches et stock diverse infos (fichier texte , etc)
2) mon pc envoie une requête quand je le souhaite
2)le pc du client reçoit la requête et renvoie les données demandées.
4) mon pc reçoit les données et les affiche .

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

30 oct. 2015, 16:31

Ok donc le point problématique c'est le 2)

2 questions à se poser :
- Quelle est la fréquence approximative à laquelle tu vas envoyer des infos ? plusieurs fois par mois ? par jour ? par heure ? par minute ?
- As tu besoin d'instantanéité ?


Si tu as besoin d'instantanéité, ça veut dire qu'il faut que tu installes sur le PC du client un logiciel qui ouvre une connexion permanente avec ton serveur.
C'est très compliqué à mettre en place et cela veut dire aussi qu'il faut multiplier la puissance de ton serveur en fonction du nombre de PC client car c'est très gourmand en ressource d'avoir plusieurs dizaines/centaines de connexions à maintenir ouvertes en permanence.


L'autre solution qui est la plus réaliste c'est que le logiciel que tu as installé sur le PC du client aille vérifier régulièrement (toutes les X minutes ou heure suivant ton besoin) sur le serveur distant si il doit effectuer une action.
Quand tout le reste a échoué, lisez le mode d'emploi...

echo55
Invité n'ayant pas de compte PHPfrance

30 oct. 2015, 16:40

J'ai pas encore mis quoi que ce soit en place , donc je cherche le moyen le plus simple/pratique pour le faire

Je veux pouvoir a tout moment questionner un pc pour lui demander des infos , également pouvoir dire a tout les pc qu'une nouvelle version est dispo ou afficher tel message.

echo55
Invité n'ayant pas de compte PHPfrance

02 nov. 2015, 13:22

Maintenant que mon sujet est bien identifié , avez vous des solutions a me proposer ? = )

Parce que je patauge toujours .

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

02 nov. 2015, 14:54

Côté serveur, tu fais une page web (texte brute ou XML ou json) qui annoncera les actions à effectuer.
Côté client, tu fait une appli qui ira vérifier toutes les X minutes/heures, si elle doit effectuer une action et le cas échéant l'effectuera.

Par exemple, si tu veux que le PC client te renvoie des infos.
Ta page web annonce :

Code : Tout sélectionner

<?xml version="1.0" encoding="UTF-8"?> <root> <action url="http://tondomaine.fr/recup_infos.php">renvoi_infos</action> </root>
Le soft sur le PC client interroge cette page, et en déduit qu'il doit envoyer des infos à l'url http://tondomaine.fr/recup_infos.php
Quand tout le reste a échoué, lisez le mode d'emploi...

echo55
Invité n'ayant pas de compte PHPfrance

02 nov. 2015, 15:26

Merci beaucoup,

Mais aurais-tu des pistes pour m'aider ? je sais vraiment pas comment faire

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

02 nov. 2015, 16:02

Comment faire quelle partie ?

Pour le côté serveur, c'est du PHP tout simple où on pourras t'aider sans problème.

En revanche, pour le côté client il faut développer une application et là ça dépend des actions que tu souhaites effectuer sur l'ordi client (et de sa plateforme Win/Mac/Linux). Si tout se passe en background, PHP-CLI peut suffire mais comme tu disais vouloir afficher des formulaires, il va te falloir une interface.
Quand tout le reste a échoué, lisez le mode d'emploi...

echo55
Invité n'ayant pas de compte PHPfrance

02 nov. 2015, 16:17

Je vois comment faire pour récupérer les infos dont j'ai besoin le seul problème que j'ai c'est les envoyer du pc client a mon pc .

Sous forme de fichier texte par exemple , avec le php cli comment l'envoyer ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

02 nov. 2015, 17:28

Le plus simple, c'est avec une requête GET (ou POST).

Ton appli cliente appelle une url en passant en paramètre les infos à renvoyer au serveur :
http://tondomaine.fr/recup_infos.php?va ... &variable2

En PHP :
<?php
file_get_contents("http://tondomaine.fr/recup_infos.php?variable1=valeur1&variable2");
Si tu as beaucoup de donner ou des fichiers à renvoyer, tu peux faire un envoi en POST avec Curl en PHP.
Quand tout le reste a échoué, lisez le mode d'emploi...

echo55
Invité n'ayant pas de compte PHPfrance

02 nov. 2015, 17:37

Sauf que mon site est en local , il n'est pas hébergé sur le web

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

02 nov. 2015, 17:42

Et bien rend le accessible sur le web, ou développes-en un qui sera sur le web et qui servira d'intermédiaire.
Quand tout le reste a échoué, lisez le mode d'emploi...