TsgcWebSocketServer_HTTPAPI

HTTP Server APIを使用すると、アプリケーションはMicrosoft Internet Information Server(IIS)を使用せずにHTTP上で通信できます。

はじめに

HTTP Server API により、アプリケーションは Microsoft Internet Information Server(IIS)を使用せずに HTTP を通じて通信できます。アプリケーションは特定の URL に対する HTTP リクエストを受信するように登録し、WebSocket リクエストを受信して WebSocket レスポンスを送信できます。HTTP Server API には SSL サポートが含まれているため、アプリケーションは IIS なしでセキュアな HTTP 接続を通じてデータを交換できます。また、I/O 完了ポートと連携するように設計されています。

 

サーバーは以下のプロトコルをサポートします:

 

 

デフォルトでは、このコンポーネントは URL 登録のためにアプリケーションが管理者モードで実行される必要があります。URL が netsh などの外部ツールを使用してすでに登録されている場合、管理者権限なしで実行できます。BindingOptions.ConfigureSSLCertificate プロパティを無効にして、管理者権限なしでアプリケーションを起動できるようにしてください。

FastMM4/FastMM5 をプロジェクトの最初のユニットとして設定してください。

 

このコンポーネントの設定手順に従います:

 

1. フォームにTsgcWebSocketServer_HTTPAPIコンポーネントをドロップします

 

2. リスニングアドレスとポートを定義します。

 


    Server.Host := '127.0.0.1';
    Server.Port := 80;

 

3. 許可する仕様を設定します。デフォルトではすべての仕様が許可されています。

 

RFC6455: 標準かつ推奨の WebSocket 仕様です。

 

Hixie76: これはドラフトであり、Safari 4.2 などの古いブラウザへのサポートを提供したい場合にのみ Hixie76 接続を確立することが推奨されます

 

5. プロシージャを作成し、プロパティ Active = true を設定します

 

URL 予約

HTTP.SYS サーバーはURL予約を使用して、HTTP.SYS サーバーが使用するURLエンドポイントを割り当てます。

 

基本 URL 予約

 

これはサーバーを設定する最も簡単なシンプルなモードです。基本的にHTTP.SYSサーバーが処理するホストとポートを設定するだけです。

例: サーバーが IP 127.0.0.1 およびポート 80 で実行されている場合は、次のプロパティを設定してください。


    Server.Host := '127.0.0.1';
    Server.Port := 80;

 

サーバーが複数の IP で動作しており、複数の IP にバインドしたい場合は、NewBinding メソッドを使用します。まず Host および Bindings プロパティをクリアし、NewBinding メソッドを使用してすべてのサーバーバインディングを定義します。


    Server.Host := '';
    Server.Bindings.Clear;
    Server.Bindings.NewBinding('127.0.0.1', 80, '');
    Server.Bindings.NewBinding('80.50.55.11', 80, '');

サーバーが SSL 接続を必要とする場合、SSL 接続の処理に使用するホストとポートを定義するために以下を行います。


    Server.Host := '127.0.0.1';
    Server.Port := 443;
    Server.SSL := True;
    Server.SSLOptions.Hash := 'CERTIFICATE_HASH';

サーバーが複数の IP アドレスで SSL 接続を必要とする場合、まず Host と Bindings プロパティをクリアしてから新しいバインディングを登録してください。


    Server.Host := '';
    Server.Bindings.Clear;
    Server.Bindings.NewBinding('127.0.0.1', 443, '', true, 'CERTIFICATE_HASH1');
    Server.Bindings.NewBinding('80.50.55.11', 443, '', true, 'CERTIFICATE_HASH2');

リファレンス

ガイド