TsgcWebSocketServer › Ereignisse › OnSSLGetHandler

OnSSLGetHandler Ereignis

Wird ausgelöst, bevor der SSL-Handler erstellt wird, sodass 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 Server den für SSL-Bindings verwendeten TLS-IOHandler erstellt. Weisen Sie aSSLHandler eine Instanz Ihrer eigenen, von TIdServerIOHandlerSSLBase abgeleiteten Klasse zu, um den Standard-Handler zu ersetzen, zum Beispiel um eine spezialisierte OpenSSL- oder SChannel-Implementierung einzubinden. Lassen Sie aSSLHandler unzugewiesen, damit der Server den Standard-Handler erstellt; in diesem Fall kann OnSSLAfterCreateHandler weiterhin verwendet werden, um Eigenschaften nach der Erstellung anzupassen. Die Komponente übernimmt das Eigentum am 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 Server 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