REGISTER CLIENT

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 11.3 (Modified)


REGISTER CLIENT (clientName{; period}{; *})

引数説明
clientName文字列4Dクライアントセッション名
period倍長整数***バージョン11.3より無効***
**ローカルプロセス

説明

REGISTER CLIENT コマンドは、4Dクライアントステーションを、clientNameで指定した名前で4D Serverに登録し、他のクライアントもしくは4D Server (ストアドプロシージャから) が登録されたマシン上で、EXECUTE ON CLIENTコマンドを使ってメソッドを実行できるようにします。一旦登録されると、4Dクライアントは他のクライアント用に1つまたはそれ以上のメソッドを実行することができます。

Notes:

・データベース環境設定ダイアログの、起動時にクライアント登録オプションを使って、4D Serverに接続するクライアントステーションを自動的に登録することができます。

・ローカルモードの4Dでこのコマンドが使用されても効果はありません。

・ひとつ以上の4Dクライアントが同じ登録名を持つことができます。

このコマンドが実行されると、クライアントステーション上にclientNameという名のプロセスが作成されます。このプロセスはUNREGISTER CLIENTコマンドによってのみアボート可能です。

オプションの * 引数を渡すと、作成されるプロセスはローカルプロセスになり、4Dは自動的にプロセス名の始めにドルマーク ($) を付け加えます。そうでない場合は、グローバルプロセスです。

互換性に関するメモ: 4Dバージョン11.3より、サーバ/クライアント通信のメカニズムが最適化されました。サーバは必要に応じて直接、登録されたクライアントに実行リクエストを送信します ("プッシュ"テクノロジ)。以前の、クライアントが定期的にサーバに問い合わせする方法は使用されません。period引数は無視されます。

一度コマンドが実行されると、4Dクライアント名を動的に変更することはできません。これを実行するには、UNREGISTERCLIENTコマンドを呼び出し、再度REGISTER CLIENTコマンドを呼び出します。

例題

下記の例では、クライアントワークステーション同士の間で通信を行なうことができる、小さなメッセージシステムを作成してます。

1. このメソッドRegistrationは4Dクライアントを登録して、他の4Dクライアントからのメッセージを受け取ることができるようにします:

      `他の名前で登録する前に登録解除する必要がある
   UNREGISTER CLIENT
   REPEAT 
      vPseudoName:=Request("名前を入力:";"ユーザ";"OK";"キャンセル")
   Until ((OK=0) | (vPseudoName # ""))
   If (OK=0)
      ...` 何も行わない
   Else 
      REGISTER CLIENT(vPseudoName)
   End if 

2. 以下の指示は、登録されたクライアントのリストを得ることができるようにするものです。これは、On Startup データベースメソッド内に置くことができます:

   PrClientList:=New process("4D Client List";32000;"List of registered clients")

3. 以下の4D Client Listメソッドは、メッセージ受信可能な登録済み全4Dクライアントの登録名リストを入手します:

   If (Application type=4D Remote Mode)
         ` 以下のコードはクライアントサーバでのみ有効 
      $Ref:=Open window(100;100;300;400;-(Palette window+Has window title);"List of registered clients")
      REPEAT 
         GET REGISTERED CLIENTS($ClientList;$ListeCharge)
            `$ClientListに登録済みクライアントリストを取得
         ERASE WINDOW($Ref)
         GOTO XY(0;0)
         For ($p;1;Size of array($ClientList))
            MESSAGE($ClientList{$p}+Char(Carriage return))
         End for 
            `毎秒ごとに表示
         DELAY PROCESS(Current process;60)
      Until (False) ` 無限ループ
   End if

4. 下記のメソッドは、登録済みの他の4Dクライアントにメッセージを送ります。これは、送られた4DクライアントでDisplay_Messageメソッドを呼び出します(下記参照)。

   $Addressee:=Request("メッセージの宛先:";"")
      ` On Startup データベースメソッドで取得した、メッセージ受信可能者リストの名前を指定
   If (OK # 0)
      $Message:=Request("Message:")  ` message
      If (OK # 0)
         EXECUTE ON CLIENT($Addressee;"Display_Message";$Message) ` メッセージ送信
      End if 
   End if 

5. 以下は、Display_Messageメソッドです:

   C_TEXT($1)
   ALERT($1) 

6. 最後に、以下のメソッドはクライアントステーションが他の4Dクライアントから見えず、メッセージも受け取れなくなるようにします:

   UNREGISTER CLIENT

参照

EXECUTE ON CLIENT, GET REGISTERED CLIENTS, UNREGISTER CLIENT.

システム変数とセット

4Dクライアントが正常に登録されるとシステム変数OKは1になります。既に4Dクライアントが登録されている時は、コマンドは実行されず、システム変数OKは0になります。


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次