version 6.5
INSCRIRE CLIENT (nomClient{; période{; *}})
Paramètre | Type | Description | |
nomClient | Alpha | Nom de la session 4D Client | |
période | Entier long | Délai d'interrogation au serveur (en secondes) | |
* | * | Process local |
Description
La commande INSCRIRE CLIENT "inscrit" un poste 4D Client sous le nom nomClient auprès de 4D Server, afin de permettre que d'autres clients ou éventuellement 4D Server (par l'intermédiaire de procédures stockées) puissent y exécuter des méthodes à l'aide de la commande EXECUTER SUR CLIENT. Une fois inscrit, un 4D Client peut donc exécuter une ou plusieurs méthodes pour le compte d'autres clients.
Note : Vous pouvez également inscrire automatiquement chaque poste client qui se connecte à 4D Server via l'option "Inscrire les clients au démarrage pour Exécuter sur client" dans la boîte de dialogue des Préférences (cf. manuel Mode Structure).
A l'issue de l'exécution de la commande, un process, nommé nomClient, est créé sur le poste client. Ce process ne peut être détruit que par la commande DESINSCRIRE CLIENT.
Si le paramètre optionnel * est passé, le process créé est local (4D ajoute automatiquement le signe $ au nom du process). Sinon, il est global.
Note : Plusieurs 4D Client peuvent avoir le même nom d'inscription.
Après l'exécution de la commande, le poste client interroge périodiquement 4D Server afin de savoir si un autre 4D Client ou le serveur lui-même font appel à lui. Par défaut, cette interrogation est effectuée toutes les 2 secondes. Vous pouvez modifier ce délai à l'aide du paramètre période. La valeur minimale est de 1 seconde.
Note : Lorsqu'elle est utilisée avec 4e Dimension monoposte, cette commande ne fait rien.
Une fois la commande exécutée, il n'est pas possible de modifier "à la volée" le nom du 4D Client ni le délai d'interrogation du serveur. Pour cela, il est nécessaire d'appeler la commande DESINSCRIRE CLIENT puis d'exécuter à nouveau INSCRIRE CLIENT.
Si le 4D Client est correctement inscrit, la variable système OK prend la valeur 1. Si le 4D Client était déjà inscrit, la commande ne fait rien et OK prend la valeur 0.
Exemple
Les méthodes suivantes permettent de réaliser une petite messagerie entre les postes clients inscrits.
1. La méthode INSCRIPTION permet d'inscrire un 4D Client et de le tenir prêt à recevoir un message de la part d'un autre 4D Client :
`Méthode INSCRIPTION `Il faut se désinscrire avant de s'inscrire sous un autre nom DESINSCRIRE CLIENT Repeter vNomPseudo:=Demander("Entrez votre nom :";"Utilisateur";"OK";"Annuler") Jusque ((OK=0) | (vNomPseudo # "")) Si (OK=0) ...` Ne rien faire Sinon INSCRIRE CLIENT(vNomPseudo;*) Fin de si
2. L'instruction suivante permet de connaître les 4D Clients inscrits. Elle peut être placée dans la Méthode base Sur ouverture :
` Méthode base Sur ouverture PrListeClient:=Nouveau process("Liste_4DClients";32000;"Liste d'inscrits")
3. La méthode Liste_4DClients permet de récupérer tous les 4D Client inscrits et les personnes acceptant de recevoir des messages :
` Méthode Liste_4DClients Si (Type application=4D Client) ` Le code ci-dessous n'est valable qu'en mode client-serveur $Ref:=Creer fenetre(100;100;300;400;-(Fenêtre palette+Avec titre de fenêtre);"Liste d'inscrits") Repeter LIRE CLIENTS INSCRITS($ListeClient;$ListeCharge) `Récupération des clients inscrits dans $ListeClient EFFACER FENETRE($Ref) POSITION MESSAGE(0;0) Boucle ($p;1;Taille tableau($ListeClient)) MESSAGE($ListeClient{$p}+Caractere(Retour chariot)) Fin de boucle `Afficher chaque seconde ENDORMIR PROCESS(Numero du process courant;60) Jusque (Faux) ` Boucle infinie Fin de si
4. La méthode Envoyer_Message permet d'envoyer un message à un autre 4D Client inscrit.
` Méthode Envoyer_Message $Destinataire:=Demander("Destinataire du message :";"") ` Saisir le nom d'une des personnes visibles dans la fenêtre générée par la méthode base Sur ouverture Si (OK # 0) $Message:=Demander("Message :") ` Contenu du message Si (OK # 0) EXECUTER SUR CLIENT($Destinataire;"Afficher_Message";$Message) ` Envoi du message Fin de si Fin de si
5. La méthode Afficher_Message affiche le message sur le poste client :
` Méthode Afficher_Message C_TEXTE($1) ALERTE($1)
6. Enfin, cette méthode permet à un poste client de n'être plus visible par les autres 4D Clients et ne plus recevoir de message :
` Méthode DÉSINSCRIPTION : DESINSCRIRE CLIENT
Référence
DESINSCRIRE CLIENT, EXECUTER SUR CLIENT, LIRE CLIENTS INSCRITS.
Variables et ensembles système
Si le poste client est correctement inscrit, la variable système OK prend la valeur 1. Si le poste était déjà inscrit, la commande ne fait rien et OK prend la valeur 0.