Dodatek do sgcWebSockets Core Delphi 7 do 13 & C++ Builder

sgcCustomIndy: zmodyfikowana biblioteka Indy dla sgcWebSockets Core

Indy to otwartoźródłowa biblioteka komunikacyjna klienta i serwera, na której sgcWebSockets opiera część swoich komponentów. Standardowa biblioteka Indy nie obsługuje ALPN ani TLS 1.3 przez OpenSSL 1.1.1 czy 3.x, dlatego sgcWebSockets Enterprise dostarcza zmodyfikowaną kompilację Indy, która to potrafi. sgcCustomIndy udostępnia dokładnie tę samą kompilację w sgcWebSockets Core, gdzie inaczej trzeba by przejść na edycję Enterprise, żeby ją mieć.

Pełny kod źródłowy
Nic do odinstalowania
Zainstalowane obok siebie Jedno IDE Zmodyfikowane moduły mają przedrostek sgc, więc obie biblioteki działają w tym samym IDE
Standardowe Indy IdGlobal.pas
Zmodyfikowane Indy sgcIdGlobal.pas
0 bibliotek Indy do odinstalowania Indy, które masz już w IDE, zostaje zainstalowane
0 instalacji Indy 10 w Delphi 7 Biblioteka jest dostarczana razem z pakietem
3 możliwości, których brakuje standardowemu Indy ALPN, TLS 1.3 przez OpenSSL 1.1.1 i 3.x, statyczne linkowanie
1 moduł do statycznego OpenSSL sgcIdSSLOpenSSL_Static w klauzuli uses
2 cele statycznego linkowania Windows 32 bit i 64 bit, Delphi XE2 lub nowszy

Dwie rzeczy, które warto wiedzieć najpierw

Dla kogo jest ten pakiet i kto już go ma. Obie odpowiedzi są krótkie.

To dodatek, a nie osobne zamówienie

sgcCustomIndy dołącza się do licencji sgcWebSockets Core. Nie zamawia się go osobno: pojawia się jako pierwszy polecany dodatek w zamówieniu Core, czyli w tym samym zamówieniu, przez które przechodzą pakiety sgcAI, sgcMQ, sgcSocial, sgcAuth i sgcHTTP.

Pełny kod źródłowy jest dostarczany z licencją, więc moduły Indy kompilują się i dają się prześledzić krok po kroku w twoim własnym projekcie dokładnie tak jak reszta biblioteki.

Sprawdź najpierw

Enterprise i All-Access już to zawierają

Zmodyfikowana biblioteka Indy jest częścią sgcWebSockets Enterprise oraz eSeGeCe All-Access, gdzie jest włączona domyślnie przez dyrektywę kompilatora SGC_CUSTOM_INDY w pliku sgcVer.inc. Jeśli masz którąkolwiek z nich, masz już wszystko z tej strony i nie ma nic do dodania.

Edycje Standard i Professional korzystają ze standardowej biblioteki Indy. Zobacz, której edycji potrzebujesz, jeśli zastanawiasz się nad zmianą edycji zamiast tego pakietu.

Trzy rzeczy, których standardowa biblioteka Indy nie potrafi

Każda z poniższych pozycji to możliwość samej warstwy Indy, a nie komponentu, który nad nią stoi. Dlatego to właśnie podmiana biblioteki Indy je włącza.

ALPNNegocjacja protokołu

Rozszerzenie, na którym opiera się HTTP/2

HTTP/2 jest negocjowany podczas uzgadniania TLS: klient ogłasza protokoły, którymi potrafi mówić, a serwer wybiera jeden z nich. Ta negocjacja to Application-Layer Protocol Negotiation i odbywa się wewnątrz warstwy TLS, poniżej wszystkiego, do czego sięga komponent HTTP. Standardowa biblioteka Indy tego nie obsługuje, więc to zmodyfikowana biblioteka Indy udostępnia ALPN, a razem z nim HTTP/2.

ALPN HTTP/2
TLS 1.3OpenSSL 1.1.1 i 3.x

Nowoczesne gałęzie OpenSSL, wreszcie w zasięgu

TLS 1.3 wymaga OpenSSL 1.1.1 albo OpenSSL 3.0.0, a standardowa biblioteka Indy tych gałęzi nie obsługuje. Zmodyfikowana biblioteka Indy je obsługuje, więc zbudowany na niej klient albo serwer negocjuje TLS 1.3 z punktami końcowymi, które tego wymagają, zamiast zatrzymywać się na tym, co oferuje starsze API OpenSSL.

TLS 1.3 OpenSSL 1.1.1 OpenSSL 3.x
Statyczny OpenSSLWindows, Delphi XE2 lub nowszy

OpenSSL wewnątrz pliku wykonywalnego

OpenSSL można wlinkować bezpośrednio w twoją aplikację, zamiast ładować go w czasie działania z bibliotek DLL libcrypto i libssl, dzięki czemu aplikacja z TLS wdraża się jako jeden plik. Działa to tylko wtedy, gdy używana jest zmodyfikowana biblioteka Indy, czyli ta, którą daje ten pakiet. Zakres to Windows 32 bit i 64 bit w Delphi XE2 lub nowszym, opisany szczegółowo niżej.

sgcIdSSLOpenSSL_Static Tylko Windows Delphi XE2+

Stoi obok Indy, które już masz

Podmiana biblioteki Indy w IDE to ta część, której nikt nie chce robić, więc ten pakiet o nią nie prosi. Pliki zmodyfikowanego Indy mają zmienione nazwy, z przedrostkiem sgc, IdGlobal staje się sgcIdGlobal, a obie wersje współistnieją bez problemów.

Standardowe Indy, już w twoim IDEZmodyfikowane Indy, dodane przez ten pakietCo to oznacza
IdGlobal.passgcIdGlobal.pasInne nazwy modułów, więc nic się nie zderza na ścieżce wyszukiwania
IdTCPClient.passgcIdTCPClient.pasObie biblioteki kompilują się w tym samym IDE i w tym samym projekcie
IdSSLOpenSSL.passgcIdSSLOpenSSL.pasTwój dotychczasowy kod TLS nadal korzysta z modułu, którego używał
Nic do odinstalowania

Jakiekolwiek Indy masz już w IDE, zostaje zainstalowane i zarejestrowane. Nie ma kroku, w którym usuwasz pakiet, przywracasz go później albo trzymasz dwa profile IDE.

Istniejące projekty pozostają nietknięte

Wszystko, co już budujesz na standardowej bibliotece Indy, nadal kompiluje się z nią, bajt w bajt na tych samych modułach. Zmodyfikowana kompilacja jest dodatkiem, nie zastępuje niczego i nie jest aktualizacją nałożoną na twoje IDE.

Jedna dyrektywa kompilatora

Użyciem zmodyfikowanej biblioteki Indy steruje SGC_CUSTOM_INDY w pliku sgcVer.inc, w folderze ze źródłami. To jedna dyrektywa, więc wyłączenie zmodyfikowanej kompilacji jest zmianą w jednej linii.

Pełne źródła, jak zawsze

Przemianowane moduły Indy są dostarczane w postaci źródeł razem z licencją, więc kompilują się z ustawieniami twojego projektu i dają się prześledzić w debugerze jak reszta biblioteki.

Bez osobnej instalacji Indy 10

Delphi 7 jest dostarczane ze starszym Indy. Użycie tam sgcWebSockets oznaczałoby inaczej samodzielne zainstalowanie najpierw Indy 10 w IDE, a to właśnie ten krok zatrzymuje wiele osób, zanim napiszą choćby linijkę kodu. Ze zmodyfikowaną biblioteką Indy w zestawie ten krok znika.

Jak wyglądał ten warunek wstępny

Zdobądź Indy 10, zainstaluj je w IDE Delphi 7, które nigdy go nie miało, doprowadź pakiety do kompilacji, a potem wróć i zacznij z sgcWebSockets. To zupełnie osobny kawałek pracy, wykonywany przed tym, o co naprawdę ci chodziło.

Dla firmy, która nadal utrzymuje kod w Delphi 7, ten warunek często decyduje o tym, czy biblioteka komponentów w ogóle zostanie sprawdzona.

Jak to wygląda z tym pakietem

Zmodyfikowana biblioteka Indy jest dostarczana z pakietem, w tym samym folderze ze źródłami co cała reszta. Nie ma żadnego Indy 10 do znalezienia, żadnego Indy 10 do zainstalowania w IDE i żadnej wersji Indy 10, którą trzeba dopasowywać do komponentów.

Chodzi tu wyłącznie o warunek wstępny w postaci Indy 10. Statyczne linkowanie OpenSSL to osobna funkcja z własnym zakresem, Windows i Delphi XE2 lub nowszy, więc w Delphi 7 nie ma zastosowania.

Jeden moduł, jeden plik do wdrożenia

Nie ma nic do konfigurowania. Dodaj sgcIdSSLOpenSSL_Static do klauzuli uses swojego projektu, na przykład w głównym pliku .dpr, a aplikacja przy następnym uruchomieniu użyje OpenSSL wlinkowanego w plik wykonywalny, tak samo dla komponentów klienckich jak i serwerowych.

// Project1.dpr
uses
  sgcIdSSLOpenSSL_Static;

// That is the whole configuration. No compiler directive to enable,
// no OpenSSL API version to choose. Remove the unit again and the
// application goes back to loading the OpenSSL DLLs exactly as before.
Platformy Gdzie plik obiektowy w tym formacie da się wlinkować
Windows 32 bit Windows 64 bit macOS iOS Android
Kompilator Starsze wersje zgłaszają E2045 Bad object file format
Delphi XE2 i nowsze Delphi 7 do XE
Warunek wstępny Bez tego statyczne linkowanie nie działa
Używana zmodyfikowana biblioteka Indy SGC_CUSTOM_INDY zdefiniowane
Wlinkowany OpenSSL Co jakiś czas aktualizowany, żeby przejąć najnowsze poprawki OpenSSL
OpenSSL 3.5.7

W wersji albo na platformie, gdzie statyczne linkowanie nie jest dostępne, nic się nie psuje. Aplikacja nadal ładuje biblioteki DLL OpenSSL tak jak wcześniej, więc te same źródła kompilują się wszędzie.

Której biblioteki Indy używa każda edycja

Zmodyfikowana biblioteka Indy nie jest niczym nowym. To na niej zbudowany jest sgcWebSockets Enterprise, a ten pakiet jest drogą do niej dla Core.

Co posiadaszBiblioteka IndyUwagi
sgcWebSockets StandardStandardowaBez ALPN, bez TLS 1.3 przez OpenSSL 1.1.1 czy 3.x
sgcWebSockets ProfessionalStandardowaBez ALPN, bez TLS 1.3 przez OpenSSL 1.1.1 czy 3.x
sgcWebSockets EnterpriseZmodyfikowanaW zestawie, włączona domyślnie
eSeGeCe All-AccessZmodyfikowanaW zestawie, włączona domyślnie
sgcWebSockets Core samodzielnieStandardowaTo właśnie zmienia ten pakiet
sgcWebSockets Core z sgcCustomIndyZmodyfikowanaTa sama zmodyfikowana kompilacja, której używa Enterprise

To nie to samo co sgcIndy

sgcCustomIndy to kompilacja z przedrostkiem sgc, która stoi obok twojego dotychczasowego Indy i z której korzystają komponenty sgcWebSockets. sgcIndy to osobny, pełny pakiet Indy z modułami pod oryginalnymi nazwami, który instalujesz w miejsce Indy w swoim IDE, żeby standardowe komponenty Indy, takie jak SMTP i FTP, dostały ten sam nowoczesny TLS. Inne produkty, inne zadania.

Dodawany w trakcie zamówienia Core

sgcCustomIndy zaczyna się od €149 dla jednego programisty. Wszystkie licencje obejmują pełny kod źródłowy, 1 rok aktualizacji oraz od 50% do 70% rabatu na odnowienie: 50% przy odnowieniu jednego pakietu, 60% przy dwóch, 70% przy trzech lub więcej. sgcAI, sgcMQ, sgcSocial, sgcCustomIndy, sgcAuth, sgcHTTP i sgcREST liczą się każdy jako jeden pakiet.

sgcCustomIndy

€149

Dostępne licencje Single €149, Team €249 i Site €399.

  • Zmodyfikowana biblioteka Indy, której używa sgcWebSockets Enterprise
  • ALPN, a razem z nim HTTP/2
  • TLS 1.3 przez OpenSSL 1.1.1 i 3.x
  • Statyczne linkowanie OpenSSL na Windows, Delphi XE2 lub nowszy
  • Moduły z przedrostkiem sgc, więc zainstalowane Indy pozostaje nietknięte
  • Bez osobnej instalacji Indy 10 w Delphi 7
  • Pełny kod źródłowy
  • 1 rok aktualizacji

Nie ma osobnej strony zamówienia sgcCustomIndy, ponieważ ten pakiet nigdy nie jest pozycją, od której zaczynasz zamówienie. Jest proponowany jako pierwszy polecany dodatek w zamówieniu sgcWebSockets Core, więc dodajesz go jednym kliknięciem przy okazji zamawiania sgcAI, sgcMQ czy sgcSocial i trafia on na tę samą licencję. Ponieważ wymagają go zarówno obsługa WebAuthn w sgcAuth, jak i klienty HTTP/2 oraz gRPC w sgcHTTP, zamówienie któregokolwiek z tych dwóch pakietów dodaje sgcCustomIndy do twojego koszyka automatycznie. Możesz go usunąć, jeśli masz go już przez Enterprise albo All-Access.

Masz już sgcWebSockets Enterprise albo eSeGeCe All-Access? Zmodyfikowana biblioteka Indy jest już twoja, sprawdź cennik sgcWebSockets, żeby zobaczyć, co obejmują te edycje.

3,000+Programistów
20+Lat
761+Komponentów
30+Integracji API
5Platform
30-dniowa gwarancja zwrotu pieniędzyNie jesteś zadowolony? Poproś o pełny zwrot pieniędzy w ciągu 30 dni od zakupu. Zobacz politykę zwrotów

Warstwa Indy, doprowadzona do dzisiejszych standardów

ALPN, a więc i HTTP/2, TLS 1.3 przez OpenSSL 1.1.1 i 3.x oraz OpenSSL wlinkowany w plik wykonywalny na Windows. Wszystko to obok Indy, które już masz, bez niczego do odinstalowania i bez Indy 10 do zainstalowania w Delphi 7.

Inne produkty eSeGeCe

Połącz sgcCustomIndy z naszymi pozostałymi bibliotekami komponentów dla Delphi, C++ Builder i .NET.

sgcWebSockets

Pełna biblioteka: klienty i serwery WebSocket, HTTP/2, komponenty IoT, P2P i AI. Enterprise jest zbudowany na tej zmodyfikowanej bibliotece Indy.

Dowiedz się więcej →

sgcIndy

Pełny pakiet Indy pod oryginalnymi nazwami modułów, instalowany w miejsce Indy z twojego IDE, żeby SMTP, FTP i reszta dostały nowoczesny TLS.

Dowiedz się więcej →

sgcAI

Komponenty AI, LLM i MCP. Jeden komponent czatu sięga do OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok i Mistral.

Dowiedz się więcej →

sgcMQ

Natywne klienty MQTT, AMQP 0.9.1, AMQP 1.0, Apache Kafka i STOMP. Samodzielny pakiet, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie.

Dowiedz się więcej →

sgcSocial

Klienty WhatsApp Business Cloud API i Telegram TDLib. Samodzielny pakiet, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie.

Dowiedz się więcej →

sgcAuth

Klient OAuth2, klient JWT i obsługa WebAuthn. Samodzielny pakiet, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie.

Dowiedz się więcej →

sgcHTTP

Klient HTTP/2, klient gRPC oraz klienty Google Cloud Pub/Sub, Calendar i FCM. Samodzielny pakiet, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie.

Dowiedz się więcej →

sgcQUIC

Komponenty klienta i serwera QUIC (RFC 9000) oraz HTTP/3 (RFC 9114) zbudowane na natywnym silniku QUIC w OpenSSL 3.5.

Dowiedz się więcej →

sgcHTML

Serwerowe komponenty HTML/UI powiązane z danymi dla Delphi, C++ Builder i .NET, z Bootstrap 5 i htmx.

Dowiedz się więcej →

sgcSign

Podpisy cyfrowe klasy korporacyjnej. XAdES, PAdES, CAdES i ASiC z 10 dostawcami kluczy oraz 21 profilami krajów UE.

Dowiedz się więcej →

sgcOpenAPI

Parser OpenAPI 3.0 i generator SDK. Zamień dowolną specyfikację OpenAPI w silnie typowanego klienta Delphi w kilka sekund.

Dowiedz się więcej →