Serwer IOCP

Akceptor portów uzupełniania I/O systemu Windows dla wysokiej współbieżności. Przełącz serwer sgcWebSockets na IOHandler IOCP i obsługuj tysiące połączeń z małej, stałej puli wątków zamiast jednego wątku na połączenie.

IOHandler IOCP

Tryb portów uzupełniania I/O wyłącznie dla systemu Windows dla standardowych serwerów sgcWebSockets. Włącz go poprzez IOHandlerOptions, aby skalować daleko poza domyślny model Indy z jednym wątkiem na połączenie.

Klasa komponentu

TsgcWebSocketServer / TsgcWebSocketHTTPServer — włączane przez IOHandlerOptions.

Mechanizm

Porty uzupełniania I/O systemu Windows (tylko Windows).

Platformy

Windows

Edycja

Enterprise

Ustaw typ IOHandler, gotowe

Przejdź do właściwości IOHandlerOptions i wybierz iohIOCP jako typ IOHandler. Pozostaw liczbę wątków na zero, aby automatycznie dobrać ją na podstawie liczby procesorów.

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;

Co jest w środku

Jak zachowuje się IOHandler IOCP i jak go dostroić.

I/O z puli wątków

Obsługuj tysiące połączeń z ograniczonej puli wątków zamiast jednego wątku na połączenie, jak domyślnie działa Indy.

IOCPThreads

Wątki używane do asynchronicznych (nakładanych) żądań IOCP. Wartość 0 automatycznie dobiera je na podstawie liczby procesorów. W Delphi 7 i 2007 domyślną wartością jest 32, ponieważ cpucount nie jest dostępne.

WorkOpThreads

Przypnij połączenie do tego samego wątku, gdy tego potrzebujesz. Żądania są zwykle rozdzielane po puli, więc każde żądanie dla połączenia może działać na innym wątku. Ustaw wartość większą od zera tylko wtedy, gdy tego wymagasz. To kompromis wydajnościowy.

Kiedy używać

Zalecane, gdy musisz obsługiwać tysiące połączeń. Jeśli twój serwer osiąga maksimum w okolicach 100 jednoczesnych połączeń, domyślny model wątków Indy jest w porządku.

Wykrywanie rozłączenia

IOCP wykrywa martwe gniazdo tylko przy zapisie. Włącz CleanDisconnect na TsgcWebSocketClient lub heartbeat po stronie serwera, aby serwer dowiedział się o zerwaniu i wywołał OnDisconnect.

Specyfikacje i odniesienia

Wiarygodne źródła dla mechanizmu, na którym zbudowany jest ten tryb.

Dokumentacja i wersje demo

Przejdź bezpośrednio do dokumentacji funkcji, pobierz gotowy do uruchomienia projekt demo i wersję próbną.

Pomoc online — IOCP Dokumentacja funkcji włączania portów uzupełniania I/O systemu Windows na serwerze sgcWebSockets.
Projekt demo — Demos\Server Gotowy do uruchomienia projekt przykładowy. Dostarczany w pakiecie sgcWebSockets — pobierz wersję próbną poniżej.
Podręcznik użytkownika (PDF) Kompleksowy podręcznik obejmujący każdy komponent w bibliotece.

Skaluj do tysięcy połączeń

Pobierz bezpłatną wersję próbną i przełącz swój serwer Delphi na IOHandler IOCP systemu Windows.