Bağımsız ürünHTTP Sunucusu, HTTP/2, gRPC & Google Cloud
sgcHTTP: Delphi ve C++ Builder için HTTP Sunucusu, HTTP/2, gRPC ve Google Cloud Bileşenleri
Bir HTTP sunucusu, bir FastCGI / SCGI ağ geçidi ve beş istemci bileşeni. TsgcHTTPServer, HTTP uç noktalarını ve statik dosyaları kendi uygulamanızdan yayımlar: Port'u ayarlayın, OnCommandGet'i işleyin, Active'i ayarlayın. TsgcHTTPGateway, onun isteklerini PHP-FPM'e ve Python FastCGI ya da SCGI sunucularına iletir, böylece PHP ve Python uygulamaları, önünde Apache veya nginx olmadan sunucunuzun arkasında çalışır. TsgcHTTP2Client, tek bir TLS bağlantısı üzerinden çoğullanmış akışlar ve HPACK başlık sıkıştırmasıyla HTTP/2 konuşur. TsgcGRPCClient, bunun üzerine kurulu bir gRPC istemcisidir; unary ve akış tabanlı Protocol Buffers çağrıları için. Üç sınıf daha, düz HTTPS üzerinden Google Cloud'a ulaşır: Pub/Sub, Calendar ve Firebase Cloud Messaging. sgcHTTP bağımsızdır, sunucunun, ağ geçidinin ve beş istemcinin de üzerine kurulduğu sgcWebSockets Core çalışma zamanını içerir.
Pakete dahil çalışma zamanısgcWebSockets CoreHTTP sunucusu ve her istemcinin altındaki HTTP, TLS ve JSON çalışma zamanı
HTTP/2TsgcHTTP2Client
gRPCTsgcGRPCClient
ÇALIŞIRKEN İZLEYİN
sgcHTTP'yi İki Dakikada Görün
Delphi ve C++Builder için bir HTTP sunucusu, HTTP/2 ve gRPC istemcileri, ayrıca hazır Google Cloud, Amazon ve Apple Push entegrasyonları.
4Palet bileşeniHTTP sunucusu, FastCGI / SCGI ağ geçidi, HTTP/2 istemcisi & gRPC istemcisi, palette tek sayfa
5İstemci sınıfı toplamıHTTP/2, gRPC ve üç Google Cloud istemcisi
3Google Cloud hizmetiPub/Sub, Calendar ve Firebase Cloud Messaging
100%Kaynak kodu dahilHTTP sunucusu, ağ geçidi, beş istemci ve pakete dahil Core çalışma zamanı
12Ay güncellemeLisansınız aktifken yayımlanan her sürüm
SATIN ALMADAN ÖNCE
Önce Bilmeye Değer İki Şey
sgcHTTP'nin sizden ne istediği ve ne istemediği. İki yanıt da kısa.
sgcHTTP kendi kendine yeter
Bağımsız olarak, sgcWebSockets Core çalışma zamanı pakete dahildir: HTTP sunucusu, her istemcinin isteklerini gönderdiği HTTP/TLS istemci yığını ve Google Cloud yanıtlarını çözen JSON katmanı. Tek SKU, tek kurulum paketi.
Her lisansla birlikte tam kaynak kodu gelir, böylece HTTP sunucusu, ağ geçidi, beş istemci ve altlarındaki çalışma zamanı bir ikili dosyanın içinde kaybolmak yerine kendi hata ayıklayıcınızda adım adım izlenir.
Beşten ikisi için eklenti gerekli
HTTP/2 & gRPC, sgcCustomIndy gerektirir
HTTP/2, TLS el sıkışması sırasında h2 protokolünü ALPN ile müzakere eder ve RAD Studio ile birlikte gelen standart Indy kitaplığı ALPN'yi desteklemez. sgcHTTP'nin HTTP/2 istemcisi ve gRPC istemcisi bunun yerine sgcCustomIndy üzerine kuruludur; sgcHTTP sipariş edildiğinde her zaman dahildir ve gösterilen fiyat onu zaten kapsar.
Üç Google Cloud istemcisi, Pub/Sub, Calendar ve Firebase Cloud Messaging, düz HTTPS'tir. Çıplak Core çalışma zamanı üzerinde çalışırlar ve sgcCustomIndy'ye hiç ihtiyaç duymazlar. RAD Studio ile birlikte gelen standart Indy ile çalışan FastCGI / SCGI ağ geçidi de duymaz.
KUTUDA NELER VAR
Dört Palet Bileşeni, Üç Google Cloud İstemcisi
HTTP sunucusu, FastCGI / SCGI ağ geçidi, HTTP/2 istemcisi ve gRPC istemcisi, SGC HTTP palet sayfasındaki görsel olmayan bileşenlerdir. Sunucu, pakete dahil Core çalışma zamanının sgcHTTP_Server biriminde, ağ geçidi sgcHTTP_Gateway biriminde, iki istemci ise sgcHTTP biriminde tanımlanır. Birini bir forma bırakın ya da kodda oluşturun, bağlantı seçeneklerini ayarlayın, olayları bağlayın, ardından tiplenmiş istek metotlarını çağırın. Üç Google Cloud istemcisi aynı birimde kod-yalnızca sınıflar olarak yaşar, forma bırakılacak bir şey yoktur: birini oluşturun, GoogleCloudOptions'ı ayarlayın ve metotlarını doğrudan çağırın.
HTTP Sunucusu1 bileşen
HTTP uç noktalarını ve statik dosyaları yayımlayın
TsgcHTTPServer, Delphi veya C++ Builder uygulamanızı bir HTTP sunucusuna dönüştürür. Port'u ayarlayın, OnCommandGet'i işleyin, Active'i true yapın; her istek, istek ve yanıt nesneleriyle birlikte kodunuza ulaşır, OnCommandOther ise PUT ve DELETE gibi fiilleri kapsar. DocumentRoot'u bir klasöre yönlendirin, sunucu statik dosyaları oradan döndürür. HTTPCompression yanıtları sıkıştırır, KeepAlive bağlantıları yeniden kullanır, OnSessionStart ve OnSessionEnd ile birlikte SessionState oturumları izler, MaxRequestBodySize istek gövdelerini sınırlar ve HTTPUploadFiles yüklenen dosyaları diske kaydeder. Üretim için SSL ve SSLOptions TLS'i etkinleştirir, Authentication ve OnAuthentication uç noktalarınızı korur, ThreadPool ve MaxConnections ise ölçeklenmesini denetler. sgcWebSockets WebSocket sunucusuyla aynı motordur, yalnızca WebSocket kısmı yoktur ve pakete dahil Core çalışma zamanıyla birlikte gelir.
TsgcHTTPGateway, TsgcHTTPServer veya TsgcWebSocketHTTPServer tarafından alınan istekleri TCP üzerinden FastCGI ve SCGI uygulama sunucularına iletir: PHP-FPM veya php-cgi -b üzerinden PHP ve flup gibi bir SCGI ya da FastCGI sunucusunun sunduğu Python uygulamaları. Apache mod_proxy_fcgi ve mod_proxy_scgi ya da nginx fastcgi_pass ve scgi_pass işini yapar, bu yüzden Delphi sunucunuzun önünde Apache veya nginx bulunmaz. İşleyicileri Handlers.Add('*.php', 'fcgi://127.0.0.1:9000') veya Handlers.Add('/app/', 'scgi://127.0.0.1:4000') ile kaydedin; uzantıya, öneke ya da tam yola göre eşleşirler. Ardından OnCommandGet ve OnCommandOther içinden Process çağırın. Bir işleyici eşleşip yanıt doldurulduğunda true, isteğe kendi kodunuz yanıt verdiğinde false döndürür. Ağ geçidi RFC 3875 CGI ortamını oluşturur, CGI yanıtını durumu, yönlendirmeleri ve her Set-Cookie başlığıyla birlikte ayrıştırır ve bir arka uç başarısız olduğunda OnError üzerinden bildirilen 502, 503 veya 504 ile yanıt verir. RAD Studio ile birlikte gelen standart Indy ile Windows ve Linux'ta çalışır.
Tek bir TLS bağlantısı üzerinden çoğullanmış akışlar
TsgcHTTP2Client, HTTP/2 (RFC 9113) konuşur: birden çok istek, tek bir TCP bağlantısını bağımsız akışlar olarak paylaşır, bu yüzden yavaş bir yanıt arkasındaki diğerlerini engellemez. Başlıklar HPACK ile sıkıştırılır ve h2 protokolü, TLS el sıkışması sırasında ALPN ile müzakere edilir; bileşenin standart Indy kitaplığı yerine sgcCustomIndy üzerine kurulu olmasının nedeni de budur. Her fiil kapsanır: Connect, Get, Post, Put, Patch, Delete ve Options, her biri bir eşzamanlı çağrı ve bir Async ikizi ile. Olaylar bağlantı yaşam döngüsünü açığa çıkarır: OnHTTP2Connect, OnHTTP2Response, parçalı gövdeler için OnHTTP2ResponseFragment, sunucu push için OnHTTP2PushPromise, OnHTTP2GoAway ve OnHTTP2Disconnect. HTTP2Options, yerel ayarlar çerçevesini yapılandırır; TLSOptions ve Authentication ise sgc HTTP yığınının geri kalanından devam eder.
HTTP/2 istemcisi üzerinde unary ve akış tabanlı RPC
TsgcGRPCClient, HTTP/2 istemcisi üzerine kuruludur; bu yüzden çoğullanmış bağlantıyı devralır ve üzerine gRPC tel formatını ekler: HTTP/2 akışları üzerinden uzunluk önekli Protocol Buffers mesajları. Call ve CallAsync unary RPC'leri kapsar, ServerStreamingCall tek bir isteğe bir yanıt akışını yönetir; OpenClientStream/SendStreamMessage/CloseClientStream artı OpenBidiStream/SendBidiMessage/CloseBidiStream ise istemci akışlı ve çift yönlü akışlı RPC'leri kapsar. OnGRPCResponse, OnGRPCStreamMessage ve OnGRPCStreamEnd trafiği teslim eder; RetryPolicy, Interceptors ve ServiceConfig ise çağrı noktalarına dokunmadan yeniden deneme davranışı, çapraz kesen mantık ve hizmet yapılandırması ekler. Üzerine kurulu olduğu HTTP/2 istemcisi gibi, ALPN için sgcCustomIndy'ye ihtiyaç duyar.
Üç sınıf daha, bir Google servis hesabıyla kimlik doğrulayarak Google Cloud hizmetlerine düz HTTPS üzerinden ulaşır ve hiçbiri sgcCustomIndy'ye ihtiyaç duymaz. TsgcHTTPGoogleCloud_PubSub_Client, mesajları yayınlar ve çeker; konuları, abonelikleri ve anlık görüntüleri yönetir: Publish, Pull, Acknowledge, CreateTopic, CreateSubscription ve Pub/Sub REST yüzeyinin geri kalanı. TsgcHTTPGoogleCloud_Calendar_Client, Google Calendar API v3'ü sarmalar: NewCalendar, NewEvent, LoadEvents ve LoadCalendars; senkronizasyon için OnGetCalendar ve OnGetCalendarEvent olaylarıyla. TsgcHTTPGoogleCloud_FCM_Client, tek bir çağrıyla, SendMessage, bir Firebase projesine push bildirim yükü gönderir. Üçü de kod-yalnızca sınıflardır: birini oluşturun, GoogleCloudOptions'ı ayarlayın, metotları çağırın.
Altı sınıf, altlarında neye ihtiyaç duyduklarına göre net bir şekilde ayrılır. HTTP/2 ve gRPC ALPN'ye ihtiyaç duyar, bu da sgcCustomIndy demektir. Google Cloud, HTTPS ve bir servis hesabından başka hiçbir şeye ihtiyaç duymaz; bunu da pakete dahil Core çalışma zamanı zaten sağlar. FastCGI / SCGI ağ geçidi yalnızca arkasında durduğu sunucuya ve standart Indy kitaplığına ihtiyaç duyar.
HTTP/2, ALPN'ye ihtiyaç duyar, bu yüzden sgcCustomIndy'ye ihtiyaç duyar
Application-Layer Protocol Negotiation, TLS el sıkışması sırasında h2'yi seçer; RAD Studio ile gelen standart Indy kitaplığının ALPN desteği yoktur. TsgcHTTP2Client bunun yerine eSeGeCe'nin özel Indy derlemesi olan sgcCustomIndy üzerine kuruludur.
gRPC, HTTP/2 istemcisi üzerinde giden Protocol Buffers'tır
TsgcGRPCClient kendi bağlantısını açmaz, Client özelliği bir TsgcHTTP2Client'tir. Unary, sunucu akışlı, istemci akışlı ve çift yönlü akışlı çağrıların hepsi altta HTTP/2 akışları olarak ilerler.
Google Cloud, HTTPS artı bir servis hesabıdır
Üç Google Cloud istemcisi, bir Google servis hesabının proje kimliği, istemci e-postası ve özel anahtarından oluşan GoogleCloudOptions.JWT ile kimlik doğrular ve REST API'lerini Core çalışma zamanının düz HTTPS yığını üzerinden çağırır. OnAuthToken ve OnAuthTokenError, token değişimini açığa çıkarır.
Ağ geçidi standart Indy üzerinde çalışır
TsgcHTTPGateway yalnızca pakete dahil Core çalışma zamanına ve RAD Studio ile birlikte gelen standart Indy kitaplığına ihtiyaç duyar, sgcCustomIndy gerekmez. Zaten çalışan bir arka uca düz TCP üzerinden FastCGI ve SCGI konuşur ve sunucu göndermeden önce her yanıtı arabelleğe alır.
Core çalışma zamanı kutudadır
Bağımsız olarak, sgcWebSockets Core çalışma zamanı pakete dahildir. TsgcHTTPServer'ı ve beş istemcinin her birinin çağrı yaptığı HTTP/TLS istemci yığınını sağlar; tam kaynak kodu da her şey gibi paketin bir parçasıdır.
HIZLI BAŞLANGIÇ
HTTP Sunucusu, HTTP/2 ve gRPC, Yan Yana
İki istemci sgcHTTP biriminde, sunucu sgcHTTP_Server biriminde, ağ geçidi sgcHTTP_Gateway biriminde tanımlanır ve TsgcGRPCClient, kendi HTTP/2 bağlantısını Client özelliği üzerinden taşır. Aynı kod Delphi 7'den 13'e ve C++ Builder'da derlenir.
uses
sgcHTTP, sgcHTTP_Server, sgcHTTP_Gateway;
var
Server: TsgcHTTPServer;
HTTP2: TsgcHTTP2Client;
GRPC: TsgcGRPCClient;
begin// HTTP server: endpoints and static files
Server := TsgcHTTPServer.Create(nil);
Server.Port := 8080;
Server.DocumentRoot := 'C:\www';
Server.OnCommandGet := ServerCommandGet;
Server.Active := True;
// FastCGI / SCGI gateway: PHP and Python behind the same server
FGateway := TsgcHTTPGateway.Create(nil);
FGateway.Handlers.Add('*.php', 'fcgi://127.0.0.1:9000');
FGateway.Handlers.Add('/app/', 'scgi://127.0.0.1:4000');
// HTTP/2: multiplexed requests over one TLS connection
HTTP2 := TsgcHTTP2Client.Create(nil);
HTTP2.Host := 'https://api.example.com';
HTTP2.OnHTTP2Response := HTTP2Response;
HTTP2.Active := True;
HTTP2.GetAsync('/v1/status');
// gRPC: built on the HTTP/2 client, unary and streaming RPC
GRPC := TsgcGRPCClient.Create(nil);
GRPC.Client.Host := 'https://grpc.example.com';
GRPC.OnGRPCResponse := GRPCResponse;
GRPC.CallAsync('example.OrderService', 'GetOrder', RequestBytes);
end;
procedure TForm1.HTTP2Response(Sender: TObject;
const Connection: TsgcHTTP2ConnectionClient;
const Request: TsgcHTTP2RequestProperty;
const Response: TsgcHTTP2ResponseProperty);
begin
Memo1.Lines.Add(Response.DataString);
end;
procedure TForm1.GRPCResponse(Sender: TObject;
const aResponse: TsgcGRPCResponse);
begin
Memo1.Lines.Add(aResponse.DataString);
end;
procedure TForm1.ServerCommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin// *.php and /app/ go to the backends, the rest is answered hereif FGateway.Process(AContext, ARequestInfo, AResponseInfo) then
Exit;
if ARequestInfo.Document = '/api/status'thenbegin
AResponseInfo.ContentType := 'application/json';
AResponseInfo.ContentText := '{"status":"ok"}';
end;
end;
// include: sgcHTTP.hpp, sgcHTTP_Server.hpp, sgcHTTP_Gateway.hpp// HTTP server: endpoints and static files
TsgcHTTPServer *Server = new TsgcHTTPServer(this);
Server->Port = 8080;
Server->DocumentRoot = "C:\\www";
Server->OnCommandGet = ServerCommandGet;
Server->Active = true;
// FastCGI / SCGI gateway: PHP and Python behind the same server
FGateway = new TsgcHTTPGateway(this);
FGateway->Handlers->Add("*.php", "fcgi://127.0.0.1:9000");
FGateway->Handlers->Add("/app/", "scgi://127.0.0.1:4000");
// HTTP/2: multiplexed requests over one TLS connection
TsgcHTTP2Client *HTTP2 = new TsgcHTTP2Client(this);
HTTP2->Host = "https://api.example.com";
HTTP2->OnHTTP2Response = HTTP2Response;
HTTP2->Active = true;
HTTP2->GetAsync("/v1/status");
// gRPC: built on the HTTP/2 client, unary and streaming RPC
TsgcGRPCClient *GRPC = new TsgcGRPCClient(this);
GRPC->Client->Host = "https://grpc.example.com";
GRPC->OnGRPCResponse = GRPCResponse;
GRPC->CallAsync("example.OrderService", "GetOrder", RequestBytes);
void __fastcall TForm1::HTTP2Response(TObject *Sender,
const TsgcHTTP2ConnectionClient* Connection,
const TsgcHTTP2RequestProperty* Request,
const TsgcHTTP2ResponseProperty* Response)
{
Memo1->Lines->Add(Response->DataString);
}
void __fastcall TForm1::GRPCResponse(TObject *Sender,
const TsgcGRPCResponse* aResponse)
{
Memo1->Lines->Add(aResponse->DataString);
}
void __fastcall TForm1::ServerCommandGet(TIdContext *AContext,
TIdHTTPRequestInfo *ARequestInfo, TIdHTTPResponseInfo *AResponseInfo)
{
// *.php and /app/ go to the backends, the rest is answered hereif (FGateway->Process(AContext, ARequestInfo, AResponseInfo))
return;
if (ARequestInfo->Document == "/api/status")
{
AResponseInfo->ContentType = "application/json";
AResponseInfo->ContentText = "{\"status\":\"ok\"}";
}
}
PLATFORMLAR
İki İstemci için Bir Bağımlılık, Üçü için Sıfır
HTTP/2 istemcisi ve gRPC istemcisi, sgcWebSockets'in kendisiyle aynı platform aralığını kapsayan sgcCustomIndy üzerine kuruludur. Google Cloud istemcileri düz HTTPS'tir, bu yüzden Core çalışma zamanının çalıştığı her yerde çalışırlar. FastCGI / SCGI ağ geçidi, RAD Studio ile birlikte gelen standart Indy'yi kullanır, Windows ve Linux'ta.
TsgcHTTP2Client & TsgcGRPCClientALPN için sgcCustomIndy üzerine kurulu
Windows Win32Windows Win64Linux64macOSiOSAndroid
Google Cloud istemcileriDüz HTTPS, sgcCustomIndy gerekmez
sgcHTTP kendi başına lisanslanır, tek bir geliştirici için €398 fiyatından başlar. Tüm lisanslar tam kaynak kodunu, 1 yıllık güncellemeleri ve 50% ile 70% arasında bir yenileme indirimi içerir: Tek bir paketi yenilediğinizde 50%, iki pakette 60%, üç veya daha fazla pakette 70% indirim uygulanır. sgcAI, sgcMQ, sgcSocial, sgcCustomIndy, sgcAuth, sgcHTTP ve sgcREST ürünlerinin her biri ayrı bir paket sayılır. sgcHTTP, All-Access paketine de dahildir.
sgcHTTP
€398
Single, Team ve Site lisansları mevcuttur.
Statik dosyalar, oturumlar & TLS içeren HTTP sunucusu
PHP & Python için FastCGI / SCGI ağ geçidi
Çoğullama & HPACK içeren HTTP/2 istemcisi
Unary & akış tabanlı RPC için gRPC istemcisi
Google Cloud Pub/Sub, Calendar & FCM istemcileri
sgcWebSockets Core çalışma zamanı dahil
Delphi 7'den 13'e & C++ Builder
Tam kaynak kodu
1 yıl güncelleme
HTTP/2 ve gRPC, sgcCustomIndy eklentisine ihtiyaç duyar. Siparişinize her zaman dahildir ve gösterilen fiyat onu zaten kapsar.
Ödeme sayfasında üç kalem listelenir: sıfır ücretlendirilen sgcWebSockets Core çalışma zamanı hakkı, sgcHTTP paketinin kendisi ve her zaman dahil olan sgcCustomIndy eklentisi. Tüm fiyatlandırma ayrıntıları.
3,000+Geliştirici
20+Yıl
761+Bileşen
30+API Entegrasyonu
5Platform
30 Günlük Para İade GarantisiMemnun kalmadınız mı? Satın alımdan sonraki 30 gün içinde tam para iadesi talep edin. İade politikasına bakın
Yerel Koddan Modern HTTP, gRPC ve Google Cloud
FastCGI / SCGI ağ geçidi olan bir HTTP sunucusu, çoğullamalı HTTP/2, akış tabanlı gRPC ve üç Google Cloud istemcisi; çalışma zamanı pakete dahil ve kutuda tam kaynak kodu. All-Access deneme kurulum paketini indirin ve bugün her bileşeni deneyin.
Delphi ve C++ Builder için genel amaçlı kriptografi kütüphanesi: simetrik ve asimetrik şifreleme, hashing ve kuantum sonrası algoritmalar. sgcWebSockets Standard sürümünden itibaren ücretsiz gelir.
Delphi ve C++ Builder için eksiksiz bir WebRTC medya motoru: sesli ve görüntülü aramalar, veri kanalları ve ekran paylaşımı. sgcWebSockets Enterprise için bir eklenti.