4D v16.3

REGISTER CLIENT

Inicio

 
4D v16.3
REGISTER CLIENT

REGISTER CLIENT 


 

REGISTER CLIENT ( nomCliente {; periodo}{; *} ) 
Parámetro Tipo   Descripción
nomCliente  Cadena in Nombre de la sesión 4D Client
periodo  Entero largo in **Ignorado desde la versión 11.3***
Operador in Proceso local

El comando REGISTER CLIENT “registra” un equipo cliente 4D con el nombre especificado en nomCliente en 4D Server, con el fin de permitir a otros clientes o eventualmente 4D Server (utilizando procedimientos almacenados) ejecutar métodos utilizando el comando EXECUTE ON CLIENT. Una vez registrado, un cliente 4D puede ejecutar uno o varios métodos para otros clientes.

Notas:

  • También puede registrar automáticamente cada puesto cliente que se conecte a 4D Server utilizando la opción “Registrar los clientes al inicio...” en la caja de diálogo de Preferencias.
  • Si este comando se utiliza con 4D en modo local, no tiene efecto.
  • Más de una estación 4D client puede tener el mismo nombre registrado.


Cuando se ejecuta este comando, un proceso, llamado nomCllient, se crea en el equipo cliente. Este proceso sólo puede ser abortado por el comando UNREGISTER CLIENT.
Si pasa el parámetro opcional *, el proceso creado es local. 4D añade automáticamente el signo dólar ($) al comienzo del nombre del proceso. De lo contrario, el proceso es global.

Nota de compatibilidad: a partir de la versión 11.3 de 4D, se han optimizado los mecanismos de comunicación servidor/cliente. Ahora el servidor envía las peticiones de ejecución directamente a los clientes registrados cuando es necesario (tecnología "push"). El principio anterior donde los clientes buscaban periodicamente el servidor, ya no se usa. El parámetro periodo se ignora si se pasa.

Una vez ejecutado el comando, no es posible modificar rápidamente el nombre del cliente 4D o el periodo de interrogación al servidor. Para hacerlo, debe llamar al comando UNREGISTER CLIENT, y luego ejecutar el comando REGISTER CLIENT.

Si un cliente 4D está registrado correctamente, la variable sistema OK es igual a 1. Si el cliente 4D ya fue registrado, el comando no hace nada y OK toma el valor 0.

Ejemplo  

En el siguiente ejemplo, vamos a crear un sistema de mensajería pequeño que permita a los puestos clientes comunicarse entre ellos.

1) Este método, Registro, le permite registrar un cliente 4D y conservarlo listo para recibir un mensaje de otro 4D Client:

  `Debe salir del registro antes de registrarse con otro nombre
 UNREGISTER CLIENT
 Repeat
    vNomPseudo:=Request("Introduzca su nombre:";"Usuario";"OK";"Cancelar")
 Until((OK=0)|(vNomPseudo#""))
 If(OK=0)
    ... ` No hacer nada
 Else
    REGISTER CLIENT(vNomPseudo)
 End if

2) La siguiente instrucción le permite obtener una lista de los 4D Clients registrados. Puede colocarse en el Método de base On Startup:

 PrListClient:=New process("Lista_4D Client";32000;"Lista de clientes registrados")

3) El método Lista_4DClient le permite recuperar todos los 4D Clients registrados y las personas que pueden recibir mensajes:

 If(Application type=4D Client)
  ` el código a continuación sólo es válido en modo cliente-servidor
    $Ref:=Open window(100;100;300;400;-(Palette window+Has window title);"Lista de clientes registrados")
    Repeat
       GET REGISTERED CLIENTS($ListClient;$ListeCharge)
  `Retrieve the registered clients in $ClientList
       ERASE WINDOW($Ref)
       GOTO XY(0;0)
       For($p;1;Size of array($ListClient))
          MESSAGE($ListClient{$p}+Char(Carriage return))
       End for
  `Mostrar cada segundo
       DELAY PROCESS(Current process;60)
    Until(False` Bucle infinito
 End if

4) El siguiente método le permite enviar un mensaje a otro cliente 4D registrado. Llama al método Mostrar_Mensaje (ver a continuación).

 $Destinatario:=Request("Destinatario del mensaje:";"")
  ` Introduza el nombre de las personas visibles en la ventana generada por el
  ` Método de base On Startup
 If(OK#0)
    $Mensaje:=Request("Mensaje:") ` mensaje
    If(OK#0)
       EXECUTE ON CLIENT($Destinatario;"Mostrar_Mensaje";$Mensaje` Enviar mensaje
    End if
 End if

5) Este es el método Mostrar_Mensaje:

 C_TEXT($1)
 ALERT($1)

6) Finalmente, este método permite a un puesto cliente no ser visible para los otros clientes 4D y no recibir más mensajes:

Si el cliente 4D está registrado correctamente, la variable sistema OK es igual a 1. Si 4D Client ya fue registrada, el comando no hace nada y OK toma el valor 0.



Ver también 

EXECUTE ON CLIENT
GET REGISTERED CLIENTS
UNREGISTER CLIENT

 
PROPIEDADES 

Producto: 4D
Tema: Procesos
Número 648

Este comando modifica la variable sistema OK

 
HISTORIA 

Modificado: 4D v11 SQL Release 3

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)