TsgcWebSocketLoadBalancerServer › Eventos › OnSSLGetHandler

OnSSLGetHandler Evento

Se activa antes de crear el manejador SSL para que se pueda suministrar una instancia de manejador personalizada del lado del servidor al balanceador de carga.

Sintaxis

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

Valor Predeterminado

—

Observaciones

OnSSLGetHandler se activa justo antes de que el balanceador de carga construya el TLS IOHandler utilizado para las vinculaciones 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 componente cree el controlador predeterminado; en ese caso, OnSSLAfterCreateHandler puede seguir usándose para ajustar las propiedades después de 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 balanceador de carga 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.

Ejemplo


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

Volver a Eventos