IOCP Server

Windows I/O Completion Ports-acceptor voor hoge concurrency. Schakel de sgcWebSockets-server over op de IOCP-IOHandler en bedien duizenden verbindingen vanuit een kleine, vaste thread pool in plaats van één thread per verbinding.

IOCP-IOHandler

Een Windows-only I/O Completion Ports-modus voor de standaard sgcWebSockets-servers. Schakel hem in via IOHandlerOptions om ver voorbij het standaard Indy-thread-per-verbinding-model te schalen.

Componentklasse

TsgcWebSocketServer / TsgcWebSocketHTTPServer — ingeschakeld via IOHandlerOptions.

Mechanisme

Windows I/O Completion Ports (alleen Windows).

Platforms

Windows

Editie

Enterprise

Stel het IOHandler-type in, klaar

Ga naar de IOHandlerOptions-eigenschap en selecteer iohIOCP als IOHandler Type. Laat de thread-aantallen op nul staan om ze automatisch op de CPU-count af te stemmen.

Server.IOHandlerOptions.IOHandlerType := iohIOCP;
Server.IOHandlerOptions.IOCP.IOCPThreads := 0;
Server.IOHandlerOptions.IOCP.WorkOpThreads := 0;
Server->IOHandlerOptions->IOHandlerType = iohIOCP;
Server->IOHandlerOptions->IOCP->IOCPThreads = 0;
Server->IOHandlerOptions->IOCP->WorkOpThreads = 0;
Server.IOHandlerOptions.IOHandlerType = iohIOCP;
Server.IOHandlerOptions.IOCP.IOCPThreads = 0;
Server.IOHandlerOptions.IOCP.WorkOpThreads = 0;

Wat zit erin

Hoe de IOCP-IOHandler zich gedraagt en hoe je hem afstemt.

Thread-pool-I/O

Verwerk duizenden verbindingen vanuit een beperkte pool van threads in plaats van één thread per verbinding, zoals Indy standaard werkt.

IOCPThreads

Threads die worden gebruikt voor IOCP-asynchrone (overlapped) requests. 0 stemt automatisch af op het aantal processors. Op Delphi 7 en 2007 is de standaard 32, omdat cpucount niet beschikbaar is.

WorkOpThreads

Pin een verbinding aan dezelfde thread wanneer je dat nodig hebt. Requests worden normaal over de pool verdeeld, dus elke request voor een verbinding kan op een andere thread draaien. Stel alleen een waarde groter dan nul in als je dit nodig hebt. Het is een performance-afweging.

Wanneer te gebruiken

Aanbevolen wanneer je duizenden verbindingen moet verwerken. Als je server rond de 100 gelijktijdige verbindingen blijft hangen, volstaat het standaard Indy-thread-model.

Disconnect-detectie

IOCP detecteert een dode socket alleen bij schrijven. Schakel CleanDisconnect in op TsgcWebSocketClient of een server-side heartbeat zodat de server van de drop op de hoogte raakt en OnDisconnect wordt getriggerd.

Specificaties & referenties

Gezaghebbende bronnen voor het mechanisme waarop deze modus is gebouwd.

Documentatie & demo's

Deep-link naar de featurereferentie, pak het kant-en-klare demoproject en download de proefversie.

Online-help — IOCP Featurereferentie voor het inschakelen van Windows I/O Completion Ports op de sgcWebSockets-server.
Demoproject — Demos\Server Kant-en-klaar voorbeeldproject. Wordt meegeleverd met het sgcWebSockets-pakket — download hieronder de proefversie.
Gebruikershandleiding (PDF) Uitgebreide handleiding die elk component in de bibliotheek behandelt.

Schaal naar duizenden verbindingen

Download de gratis proefversie en schakel je Delphi-server over op de Windows IOCP-IOHandler.