TsgcWebSocketLoadBalancerServer › Zdarzenia › OnSSLGetHandler

OnSSLGetHandler Event

Wywoływane przed utworzeniem procedury obsługi SSL, aby możliwe było dostarczenie do modułu równoważenia obciążenia 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 zbudowaniem przez moduł równoważenia obciążenia TLS IOHandler używanego dla powiązań SSL. Należy przypisać aSSLHandler do instancji własnej klasy dziedziczącej po TIdServerIOHandlerSSLBase, aby zastąpić domyślną procedurę obsługi — na przykład w celu podłączenia specjalizowanej implementacji OpenSSL lub SChannel. Pozostawienie aSSLHandler bez przypisania powoduje, że komponent tworzy domyślną procedurę obsługi; w takim przypadku zdarzenie OnSSLAfterCreateHandler może być nadal używane do dostosowania właściwości po utworzeniu. Komponent przejmuje własność przypisanej tutaj procedury obsługi i zwolni ją po zniszczeniu serwera.

Gdy IOHandlerOptions.IOHandlerType ma wartość iohIOCP lub iohEPOLL, procedura obsługi przypisana do aSSLHandler musi dziedziczyć po TsgcIdServerIOHandlerOpenSSLIOCP (IOCP) lub TsgcIdServerIOHandlerOpenSSLEPOLL (EPOLL), ponieważ tylko te procedury obsługi mogą być sterowane przez zdarzeniowy silnik wejścia/wyjścia. Przy każdej innej procedurze obsługi moduł równoważenia obciążenia zgłasza wyjątek podczas uruchamiania. Wartości IOHandlerOptions, takie jak wątki, limity czasu i TCPKeepAlive, są stosowane do procedury obsługi, 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ślnej procedury obsługi, należy użyć OnSSLAfterCreateHandler zamiast zastępować procedurę obsługi.

Przykład


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

Powrót do Zdarzeń