TsgcWebSocketLoadBalancerServer › Events › OnSSLGetHandler

OnSSLGetHandler イベント

SSLハンドラが作成される前に発生し、カスタムのサーバー側ハンドラインスタンスをロードバランサーに提供できます。

構文

property OnSSLGetHandler: TsgcWSOnSSLGetHandler;
// TsgcWSOnSSLGetHandler = procedure(Sender: TObject; aType: TwsSSLHandler; var aSSLHandler: TIdServerIOHandlerSSLBase) of object

デフォルト値

—

解説

OnSSLGetHandlerは、ロードバランサーがSSLバインディングに使用するTLS IOHandlerを構築する直前に発生します。デフォルトハンドラーを置き換えるには、aSSLHandlerをTIdServerIOHandlerSSLBaseから継承した独自のクラスのインスタンスに割り当てます。例: 特殊なOpenSSLまたはSChannel実装をプラグインする場合。aSSLHandlerを未割り当てのままにすると、コンポーネントがデフォルトハンドラーを作成します。その場合、OnSSLAfterCreateHandlerを使用して作成後にプロパティを調整できます。コンポーネントは、ここで割り当てられたハンドラーの所有権を取得し、サーバーが破棄されるときにそれを解放します。

IOHandlerOptions.IOHandlerTypeがiohIOCPまたはiohEPOLLの場合、aSSLHandlerに割り当てるハンドラーはTsgcIdServerIOHandlerOpenSSLIOCP(IOCP)またはTsgcIdServerIOHandlerOpenSSLEPOLL(EPOLL)から継承している必要があります。イベント駆動のI/Oエンジンを駆動できるのはこれらのハンドラーだけだからです。それ以外のハンドラーでは、ロードバランサーが起動時に例外を発生させます。IOHandlerOptionsの値(スレッド数、タイムアウト、TCPKeepAliveなど)はOnSSLAfterCreateHandlerが発生する前にハンドラーへ適用されるため、そのイベント内で設定した値が優先されます。デフォルトハンドラーの一部のプロパティだけを変更したい場合は、ハンドラーを置き換える代わりにOnSSLAfterCreateHandlerを使用してください。

使用例


procedure OnSSLGetHandler(Sender: TObject; aType: TwsSSLHandler;
  var aSSLHandler: TIdServerIOHandlerSSLBase);
begin
  aSSLHandler := TCustomServerSSLHandler.Create(nil);
  // ... configure handler properties
end;

イベントに戻る