TsgcHTTPServer › Zdarzenia › OnSSLGetHandler

OnSSLGetHandler Event

Wywoływane przed utworzeniem procedury obsługi SSL, co umożliwia dostarczenie niestandardowej instancji procedury obsługi po stronie serwera.

Składnia

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

Wartość domyślna

—

Uwagi

OnSSLGetHandler jest wywoływane tuż przed tym, jak serwer tworzy IOHandler TLS używany dla powiązań SSL. Należy przypisać do aSSLHandler instancję własnej klasy dziedziczącej po TIdServerIOHandlerSSLBase, aby zastąpić domyślny handler, na przykład w celu podłączenia specjalistycznej implementacji OpenSSL lub SChannel. Należy pozostawić aSSLHandler nieprzypisany, aby serwer utworzył domyślny handler; w takim przypadku zdarzenie OnSSLAfterCreateHandler może być nadal używane do dostosowania właściwości po jego utworzeniu. Komponent przejmuje własność handlera przypisanego w tym miejscu i zwolni go po zniszczeniu serwera.

Gdy IOHandlerOptions.IOHandlerType ma wartość iohIOCP lub iohEPOLL, handler przypisany do aSSLHandler musi dziedziczyć po TsgcIdServerIOHandlerOpenSSLIOCP (IOCP) lub TsgcIdServerIOHandlerOpenSSLEPOLL (EPOLL), ponieważ tylko te handlery mogą być sterowane przez zdarzeniowy silnik wejścia/wyjścia. Przy każdym innym handlerze serwer zgłasza wyjątek podczas uruchamiania. Wartości IOHandlerOptions, takie jak wątki, limity czasu i TCPKeepAlive, są stosowane do handlera, zanim zostanie wywołane zdarzenie OnSSLAfterCreateHandler, więc wartości ustawione w tym zdarzeniu mają pierwszeństwo. Jeśli wystarczy zmienić tylko kilka właściwości domyślnego handlera, należy użyć OnSSLAfterCreateHandler zamiast zastępować handler.

Przykład


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

Powrót do Zdarzeń