TsgcWebSocketLoadBalancerServer › Ereignisse › OnSSLGetHandler

OnSSLGetHandler Ereignis

Wird ausgelöst, bevor der SSL-Handler erstellt wird, sodass dem Load Balancer eine benutzerdefinierte serverseitige Handler-Instanz bereitgestellt werden kann.

Syntax

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

Standardwert

—

Hinweise

OnSSLGetHandler wird unmittelbar ausgelöst, bevor der Load Balancer den TLS-IOHandler erstellt, der für SSL-Bindungen verwendet wird. Weisen Sie aSSLHandler eine Instanz Ihrer eigenen Klasse zu, die von TIdServerIOHandlerSSLBase abgeleitet ist, um den Standard-Handler zu ersetzen, zum Beispiel um eine spezialisierte OpenSSL- oder SChannel-Implementierung einzubinden. Lassen Sie aSSLHandler nicht zugewiesen, damit die Komponente den Standard-Handler erstellt; in diesem Fall kann OnSSLAfterCreateHandler weiterhin verwendet werden, um Eigenschaften nach der Erstellung anzupassen. Die Komponente übernimmt das Eigentum an dem hier zugewiesenen Handler und gibt ihn frei, wenn der Server zerstört wird.

Wenn IOHandlerOptions.IOHandlerType iohIOCP oder iohEPOLL ist, muss der Handler, der aSSLHandler zugewiesen wird, von TsgcIdServerIOHandlerOpenSSLIOCP (IOCP) oder TsgcIdServerIOHandlerOpenSSLEPOLL (EPOLL) abgeleitet sein, da nur diese Handler von der ereignisgesteuerten IO-Engine gesteuert werden können. Bei jedem anderen Handler löst der Load Balancer beim Start eine Ausnahme aus. Die Werte von IOHandlerOptions, wie Threads, Timeouts und TCPKeepAlive, werden auf den Handler angewendet, bevor OnSSLAfterCreateHandler ausgelöst wird, sodass in diesem Ereignis gesetzte Werte Vorrang haben. Wenn Sie nur wenige Eigenschaften des Standard-Handlers ändern müssen, verwenden Sie OnSSLAfterCreateHandler, anstatt den Handler zu ersetzen.

Beispiel


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

Zurück zu Ereignissen