IOCP Sunucusu

Yüksek eşzamanlılık için Windows I/O Completion Ports kabul edicisi. sgcWebSockets sunucusunu IOCP IOHandler'a geçirin ve bağlantı başına bir iş parçacığı yerine küçük, sabit bir iş parçacığı havuzundan binlerce bağlantıya hizmet verin.

IOCP IOHandler

Standart sgcWebSockets sunucuları için yalnızca Windows'a özgü bir I/O Completion Ports modu. Varsayılan Indy bağlantı-başına-iş-parçacığı modelinin çok ötesine ölçeklendirmek için IOHandlerOptions aracılığıyla etkinleştirin.

Bileşen sınıfı

TsgcWebSocketServer / TsgcWebSocketHTTPServerIOHandlerOptions aracılığıyla etkinleştirilir.

Mekanizma

Windows I/O Completion Ports (yalnızca Windows).

Platformlar

Windows

Sürüm

Enterprise

IOHandler türünü ayarlayın, başlayın

IOHandlerOptions özelliğine gidin ve IOHandler Türü olarak iohIOCP'yi seçin. CPU sayısına göre otomatik boyutlandırma için iş parçacığı sayılarını sıfırda bırakın.

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;

İçinde neler var

IOCP IOHandler'ın nasıl davrandığı ve nasıl ayarlanacağı.

İş parçacığı havuzu G/Ç

Indy'nin varsayılan olarak çalıştığı bağlantı başına bir iş parçacığı yerine, sınırlı bir iş parçacığı havuzundan binlerce bağlantıyı yönetin.

IOCPThreads

IOCP asenkron (overlapped) istekleri için kullanılan iş parçacıkları. 0, işlemci sayısına göre otomatik boyutlandırır. Delphi 7 ve 2007'de cpucount mevcut olmadığından varsayılan değer 32'dir.

WorkOpThreads

Gerektiğinde bir bağlantıyı aynı iş parçacığına sabitleyin. İstekler normalde havuza dağıtılır, dolayısıyla bir bağlantı için her istek farklı bir iş parçacığında çalışabilir. Yalnızca buna ihtiyacınız varsa sıfırdan büyük bir değer ayarlayın. Bu bir performans ödünleşimidir.

Ne zaman kullanılmalı

Binlerce bağlantıyı yönetmeniz gerektiğinde önerilir. Sunucunuz yaklaşık 100 eşzamanlı bağlantıda doruğa ulaşıyorsa, varsayılan Indy iş parçacığı modeli yeterlidir.

Bağlantı kesme tespiti

IOCP, ölü bir soketi yalnızca yazma sırasında tespit eder. Sunucunun kopmayı öğrenmesi ve OnDisconnect olayının tetiklenmesi için TsgcWebSocketClient üzerinde CleanDisconnect'i veya sunucu tarafı bir heartbeat'i etkinleştirin.

Spesifikasyonlar ve referanslar

Bu modun üzerine kurulduğu mekanizma için yetkili kaynaklar.

Belgeler ve Demolar

Özellik referansına doğrudan bağlanın, çalışmaya hazır demo projesini alın ve denemeyi indirin.

Çevrimiçi Yardım — IOCP sgcWebSockets sunucusunda Windows I/O Completion Ports'u etkinleştirmek için özellik referansı.
Demo Projesi — Demos\Server Çalışmaya hazır örnek proje. sgcWebSockets paketinin içinde gelir. Aşağıdan denemeyi indirin.
Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz.

Binlerce Bağlantıya Ölçeklendirin

Ücretsiz denemeyi indirin ve Delphi sunucunuzu Windows IOCP IOHandler'a geçirin.