4D v14.3REGISTER CLIENT |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
REGISTER CLIENT
|
REGISTER CLIENT ( nomeCliente {; periodo}{; *} ) | ||||||||
Parâmetro | Tipo | Descrição | ||||||
nomeCliente | cadeia |
![]() |
Nome da sessão 4D Client | |||||
periodo | Inteiro longo |
![]() |
***Ignorado a partir da versão 11.3*** | |||||
* | Operador |
![]() |
Processo local | |||||
O comando REGISTER CLIENT “registra” uma máquina cliente com o nome especificado em nomeCliente no 4D Server, a fim de permitir outros clientes ou eventualmente 4D server (utilizando métodos armazenados) executar métodos fazendo uso do comando EXECUTE ON CLIENT. Uma vez registrado, um cliente 4D pode executar um ou vários métodos para outros clientes.
Notas:
Quando este comando é executado, um processo chamado nomeCliente, é criado na máquina cliente. Este processo somente pode ser interrompido pelo comando UNREGISTER CLIENT. Se passar o parâmetro opcional *, o processo criado é local. 4D adiciona automaticamente o símbolo dólar ($) ao começo do nome do processo. Do contrário, o processo é global.
Nota de compatibilidade: a partir da versão 11,3 de 4D, tem sido otimizados os mecanismos de comunicação servidor/cliente. Agora o servidor envia as petições de execução diretamente aos clientes registrados quando é necessário (tecnologia "push"). O principio anterior, onde os clientes procuravam periodicamente o servidor, não é mais usado. O parâmetro periodo é ignorado se passado.
Uma vez executado o comando, não é possível modificar rapidamente o nome do cliente 4D. Para poder fazê-lo, deve chamar o comando UNREGISTER CLIENT e depois o comando REGISTER CLIENT.
No seguinte exemplo, vamos a criar um sistema de mensagens pequeno que permita aos clientes comunicar-se entre eles desde suas estações.
1) Este método, Registro, permite fazer o registro de um cliente 4D e mantê-lo pronto para receber uma mensagem de outro 4D Client:
`Deverá sair do registro antes de fazer registro com outro nome
UNREGISTER CLIENT
Repeat
vPseudoName:=Request("Escreva seu nome:";"Usuario";"OK";"Cancelar")
Until((OK=0)|(vPseudoName#""))
If(OK=0)
... ` Não fazer nada
Else
REGISTER CLIENT(vPseudoName)
End if
2) A seguinte instrução permite obter uma lista dos clientes registrados. Pode ser colocada no On Startup Database Method:
PrClientList:=New process("4D Client List";32000;"Lista de clientes registrados")
3) O método 4D Client List permite recuperar todos os clientes 4D registrados e aqueles que podem receber mensagens:
If(Application type=4D Remote Mode)
` O código abaixo é válido somente no modo cliente-servidor
$Ref:=Open window(100;100;300;400;-(Palette window+Has window title);"Lista de clientes registrados")
Repeat
GET REGISTERED CLIENTS($ClientList;$ListeCharge)
`Restabelece os clientes registrados no $ClientList
ERASE WINDOW($Ref)
GOTO XY(0;0)
For($p;1;Size of array($ClientList))
MESSAGE($ClientList{$p}+Char(Carriage return))
End for
`Mostrar cada segundo
DELAY PROCESS(Current process;60)
Until(False) ` Infinite loop
End if
4) O seguinte método permite enviar mensagens a outro cliente 4D registrado. Este método chama o método Display_Message (confira abaixo).
$Addressee:=Request("Destinatário da mensagem:";"")
` Escreva o nome das pessoas visíveis na janela gerada pelo
` método On Startup database
If(OK#0)
$Message:=Request("Mensagem:") ` mensagem
If(OK#0)
EXECUTE ON CLIENT($Destinatario;"Mostrar_Mensagem";$Mensagem) ` Enviar mensagem
End if
End if
5) Este é o método Display_Message:
6) Finalmente, este método permite a uma estação de trabalho de cliente não ser visível para outros clientes 4D e não receber mais mensagens:
Se um cliente 4D está registrado corretamente, a variável do sistema OK é igual a 1. Se o cliente 4D já está registrado, o comando não faz nada e OK é igual a 0.
Produto: 4D
Tema: Processos
Número
648
Modificado: 4D v11 SQL Release 3
EXECUTE ON CLIENT
GET REGISTERED CLIENTS
UNREGISTER CLIENT
Manual de linguagem 4D ( 4D v12.4)
Manual de linguagem 4D ( 4D v11 SQL Release 6)
Manual de linguagem 4D ( 4D v14 R3)
Manual de linguagem 4D ( 4D v14 R2)
Manual de linguagem 4D ( 4D v13.5)
Manual de linguagem 4D ( 4D v14.3)
Manual de linguagem 4D ( 4D v14 R4)