TsgcHTTPServer › Eventos › OnSSLGetHandler
Se activa antes de que se cree el controlador SSL, lo que permite proporcionar una instancia de controlador personalizado del lado del servidor.
property OnSSLGetHandler: TsgcWSOnSSLGetHandler;
// TsgcWSOnSSLGetHandler = procedure(Sender: TObject; aType: TwsSSLHandler; var aSSLHandler: TIdServerIOHandlerSSLBase) of object
—
OnSSLGetHandler se genera justo antes de que el servidor construya el IOHandler de TLS utilizado para los enlaces SSL. Asigne aSSLHandler a una instancia de su propia clase heredada de TIdServerIOHandlerSSLBase para reemplazar el controlador predeterminado, por ejemplo para conectar una implementación especializada de OpenSSL o SChannel. Deje aSSLHandler sin asignar para que el servidor cree el controlador predeterminado; en ese caso, OnSSLAfterCreateHandler aún puede usarse para ajustar propiedades tras la creación. El componente toma posesión del controlador asignado aquí y lo liberará cuando el servidor sea destruido.
Cuando IOHandlerOptions.IOHandlerType es iohIOCP o iohEPOLL, el controlador asignado a aSSLHandler debe heredar de TsgcIdServerIOHandlerOpenSSLIOCP (IOCP) o TsgcIdServerIOHandlerOpenSSLEPOLL (EPOLL), porque solo esos controladores pueden ser gestionados por el motor de E/S basado en eventos. Con cualquier otro controlador, el servidor genera una excepción al iniciarse. Los valores de IOHandlerOptions, como los subprocesos, los tiempos de espera y TCPKeepAlive, se aplican al controlador antes de que se genere OnSSLAfterCreateHandler, por lo que los valores establecidos en ese evento tienen prioridad. Si solo necesita cambiar algunas propiedades del controlador predeterminado, use OnSSLAfterCreateHandler en lugar de reemplazar el controlador.
procedure OnSSLGetHandler(Sender: TObject; aType: TwsSSLHandler;
var aSSLHandler: TIdServerIOHandlerSSLBase);
begin
aSSLHandler := TCustomServerSSLHandler.Create(nil);
// ... configure handler properties
end;