Komponent WebSocket dla Delphi — Klient i serwer klasy produkcyjnej
Natywna implementacja WebSocket RFC 6455 dla Delphi i C++Builder. Buduj klientów i serwery, które trzymają tysiące jednoczesnych połączeń, działają na Windows, macOS, Linux, iOS i Android i przeżywają niestabilne sieci dzięki wbudowanemu automatycznemu ponownemu łączeniu WatchDog.
Drop-in komponent VCL/FMX, który zamienia protokół WebSocket w API właściwości i zdarzeń, które natywni deweloperzy Delphi rozpoznają.
Komponent WebSocket dla Delphi to niewizualny komponent, który upuszczasz na formularz (lub instancjonujesz w czasie wykonania), aby otworzyć pełnoduplexowy kanał TCP między aplikacją Delphi a dowolnym peerem WebSocket RFC 6455 — przeglądarką, usługą Node.js, reverse proxy nginx, brokerem Mosquitto, endpointem OpenAI Realtime lub innym procesem Delphi. W przeciwieństwie do polling HTTP, WebSocket trzyma połączenie otwarte: serwer może pchać dane w momencie, gdy są dostępne, z latencją milisekundową i bez narzutu HTTP per-wiadomość.
sgcWebSockets jest referencyjną biblioteką WebSocket w ekosystemie Delphi od 2013 roku. Te same komponenty TsgcWebSocketClient i TsgcWebSocketHTTPServer działają bez zmian na Delphi 7 do Delphi 13, na Win32, Win64, Linux64, macOS, iOS i Android oraz na C++Builder C2007 do C13. Nie ma zarządzanego runtime, nie ma warstwy interop .NET, nie ma mostu JavaScript — to czysta implementacja Pascala, która kompiluje się do Twojego binarnego.
Dlaczego wybrać sgcWebSockets zamiast pisania własnego
Napisanie jednego handlera PING/PONG jest łatwe. Przetrwanie reverse proxy terminującego TLS, modułu WebSocket IIS, firmowego firewalla, mobilnego handoveru komórkowego i testu obciążenia 5000 klientów to nie.
Jedno API, każdy transport
Zwykły WebSocket (ws://), TLS WebSocket (wss://), WebSocket nad HTTP/2, WebSocket nad QUIC/HTTP/3, surowy fallback TCP — ten sam komponent, te same zdarzenia. Przełącz transport, zmieniając jedną właściwość.
Automatyczne ponowne łączenie WatchDog
Włącz WatchDog, a klient ponownie się połączy z wykładniczym backoff, ponownie uwierzytelni, ponownie zasubskrybuje tematy MQTT i odtworzy wszelkie kolejkowane publikacje — kanoniczny wzorzec mobilny / IoT, już napisany.
Wątkowanie jest rozwiązane
Serwer pod maską używa reaktora IOCP / kqueue / epoll. Piszesz handlery zdarzeń; biblioteka planuje je w puli wątków z serializacją per-połączenie.
permessage-deflate
Negocjowane automatycznie według RFC 7692. Tnie ładunki JSON o 70–90 % i jest wspierane przez każdą nowoczesną przeglądarkę i load balancer.
Podprotokoły w komplecie
MQTT 3.1.1/5.0, AMQP 0.9.1/1.0, STOMP, WAMP i Server-Sent Events jadą na wierzchu tego samego transportu WebSocket — jedno gniazdo TCP, wiele protokołów aplikacji.
Również serwer HTTP
TsgcWebSocketHTTPServer serwuje pliki statyczne, endpointy REST, zasoby chronione JWT i OAuth2, odpowiedzi skompresowane gzip i upgrade HTTP/2 w tym samym procesie co Twój endpoint WebSocket.
TLS, który naprawdę działa
OpenSSL (cross-platform), SChannel (Windows kernel TLS) lub HTTP.sys. Certyfikaty klienta, SNI, ALPN, TLS 1.3 z 0-RTT.
Kanały i rozgłaszanie
Serwerowe Channels grupują połączenia po nazwie. Broadcast, BroadcastByChannel i BroadcastByUser rozsyłają do tysięcy peerów w pojedynczym wywołaniu.
Sprawdzone w boju
W produkcji w bankach, na giełdach, w flotach IoT i firmach tradingowych od 2013 roku. Aktualizowane co miesiąc; history.txt śledzi każdą poprawkę.
Matryca funkcji
Lista kontrolna funkcji
Wszystko, co mówi RFC, plus operacyjne utwardzenie, którego potrzebują prawdziwe wdrożenia.
Strona serwera jest symetryczna — upuść TsgcWebSocketHTTPServer, ustaw Port, obsłuż OnConnect i OnMessage, wywołaj Broadcast, aby rozesłać do każdego podłączonego peera.
Kompatybilność
Wspierane wersje Delphi i C++Builder
Jedno drzewo źródłowe, 22 pakiety runtime — pokrywające każde wydanie Delphi nadal w aktywnym użyciu komercyjnym.
Strojenie permessage-deflate dla przepustowości vs CPU.
FAQ
Często zadawane pytania
Które wersje Delphi są wspierane?
Każde komercyjne wydanie Delphi od Delphi 7 (2002) do Delphi 13 (2025), plus pasujące wersje C++Builder. Dostarczamy 22 oddzielne pakiety runtime — jeden na IDE — z pojedynczego drzewa źródłowego. Nie ma oddzielnego SKU „legacy”; każdy klient dostaje każdą wersję.
Czy komponent WebSocket wspiera TLS / wss://?
Tak. Ustaw URL := 'wss://...' i wybierz dostawcę TLS: OpenSSL (cross-platform, dostarczany z wersją próbną), SChannel (Windows kernel TLS, bez DLL do wdrożenia) lub HTTP.sys (po stronie serwera, certyfikat przechowywany w Windows certificate store). Certyfikaty klienta, SNI, ALPN, TLS 1.3 i 0-RTT są wszystkie wspierane.
Ile jednoczesnych połączeń może obsłużyć serwer?
Na Windows serwer używa IOCP i rutynowo skaluje się do ponad 50 000 jednoczesnych połączeń na proces na sprzęcie commodity. Na Linux reaktor epoll skaluje się podobnie. Twardy limit jest na poziomie OS (deskryptory plików, zakres portów efemerycznych, pamięć kernela), a nie biblioteka.
Jaki jest model licencjonowania?
Bezpłatna od opłat licencyjnych wieczysta licencja per-deweloper z jednym rokiem aktualizacji wliczonym. Dostępne licencje single-developer, team i site — zobacz cennik. Kod źródłowy jest wliczony w każdą edycję komercyjną.
Gotowy dodać WebSockets do swojej aplikacji Delphi?
Pobierz w pełni funkcjonalną 30-dniową wersję próbną — klient, serwer, wszystkie podprotokoły, wszystkie wersje Delphi.