Webサーバーオブジェクト
4Dプロジェクトは、メイン (ホスト) アプリケーションおよび、ホストされた各コンポーネントの Webサーバーを起動して監視することができます。
たとえば、メインアプリケーションに 2つのコンポーネントをインストールしている場合、アプリケーションから最大 3つの独立した Webサーバーを起動して監視することができます:
- ホストアプリケーションの Webサーバーを1つ
- コンポーネント#1 の Webサーバーを1つ
- コンポーネント#2 の Webサーバーを1つ
1つの 4Dアプリケーションプロジェクトに接続できるコンポーネントの数、つまり Webサーバーの数には、メモリ以外の制限はありません。
メインアプリケーションの Webサーバーを含む、各 4D Webサーバーは、4D.WebServer
クラスの オブジェクト として公開されます。 インスタンス化された Webサーバーオブジェクトは、多数のプロパティや関数 を使用して、カレントのアプリケーションまたは任意のコンポーネントから操作することができます。
4Dランゲージの従来の WEBコマンド はサポートされていますが、その対象となる Webサーバーを選択することはできません (後述参照)。
各 Webサーバー (ホストアプリケーションまたはコンポーネント) は、個別のコンテキストで使用できます。これには、以下が含まれます:
On Web Authentication
およびOn Web Connection
データベースメソッドの呼び出し- 4Dタグの処理とメソッドの呼び出し
- Webセッションや TLSプロトコルの管理
これにより、独自の Webインターフェースを備えた独立したコンポーネントや機能を開発することができます。
Webサーバーオブジェクトのインスタンス化
ホストアプリケーション (デフォルトWebサーバー) の Webサーバーオブジェクトは、4D 起動時に自動的に読み込まれます。 したがって、新規作成したプロジェクトに次のように書いた場合:
$nbSrv:=WEB Server list.length
//$nbSrv の値は 1
To instantiate a web server object, call the WEB Server
command:
// 4D.WebServer クラスのオブジェクト変数を作成します。
var webServer : 4D.WebServer
// カレントコンテキストから Webサーバーを呼び出します
webServer:=WEB Server
// 以 下と同じです
webServer:=WEB Server(Web server database)
アプリケーションがコンポーネントを使用している場合に:
- コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や
- リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合
次を使うこともできます:
var webServer : 4D.WebServer
// コンポーネントからホストの Webサーバーを呼び出す
webServer:=WEB Server(Web server host database)
// ターゲットの Webサーバーを呼び出す
webServer:=WEB Server(Web server receiving request)
Webサーバー関数
Webサーバークラスのオブジェクト には、以下の機能があります。
関数 | 引数 | 戻り値 | 説明 |
---|---|---|---|
start() | settings (オブジェクト) | status (オブジェクト) | Webサーバーを開始します |
stop() | - | - | Webサーバーを停止します |
Webサーバーを起動・停止するには、Webサーバーオブジェクトの start()
および stop()
関数を呼び出すだけです。
var $status : Object
// デフォルトの設定で Webサーバーを起動する場合
$status:=webServer.start()
// カスタム設定で Webサーバーを開始する場合
// $settings オブジェクトは、Wevサーバープロパティを格納します
webServer.start($settings)
// Webサーバーを停止します
$status:=webServer.stop()