Serwer STUN dla Delphi
Uruchom własny serwer STUN (RFC 8489) w Delphi. Odpowiadaj na żądania binding kanoniczną odpowiedzią XOR-MAPPED-ADDRESS — przydatne w sieciach prywatnych, wdrożeniach on-premise i bootstrappingu ICE.
Uruchom własny serwer STUN (RFC 8489) w Delphi. Odpowiadaj na żądania binding kanoniczną odpowiedzią XOR-MAPPED-ADDRESS — przydatne w sieciach prywatnych, wdrożeniach on-premise i bootstrappingu ICE.
Typowany serwer STUN zgodny z RFC 8489 — przetwarza wiadomości Binding / Indication, odpowiada XOR-MAPPED-ADDRESS, opcjonalnie wymusza MESSAGE-INTEGRITY dla uwierzytelniania long-term.
TsgcSTUNServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Ustaw Port (domyślnie 3478), Active := True — serwer odpowiada teraz na żądania Binding kanoniczną odpowiedzią XOR-MAPPED-ADDRESS zgodną z RFC 8489.
uses
sgcP2P, sgcP2P_STUN_Classes;
// TFormSTUNServer zawiera FServer: TsgcSTUNServer oraz handler
procedure TFormSTUNServer.StartServer;
begin
FServer := TsgcSTUNServer.Create(nil);
FServer.Port := 3478;
// opcjonalnie: poświadczenia long term
FServer.STUNOptions.Authentication.Enabled := True;
FServer.STUNOptions.Authentication.LongTermCredentials.Enabled := True;
FServer.STUNOptions.Authentication.LongTermCredentials.Realm :=
'example.com';
FServer.OnSTUNRequestAuthorization := OnSTUNRequestAuthorization;
FServer.Active := True;
end;
procedure TFormSTUNServer.OnSTUNRequestAuthorization(Sender: TObject;
const aRequest: TsgcSTUN_Message;
const aUsername, aRealm: string;
var Password: string);
begin
// zwróć hasło tego użytkownika, puste odrzuca żądanie
Password := LookupPassword(aUsername);
end;
// includes: sgcP2P.hpp, sgcP2P_STUN_Classes.hpp
TsgcSTUNServer *Server = new TsgcSTUNServer(this);
Server->Port = 3478;
Server->STUNOptions->Authentication->Enabled = true;
Server->STUNOptions->Authentication->LongTermCredentials->Enabled = true;
Server->STUNOptions->Authentication->LongTermCredentials->Realm = "example.com";
Server->OnSTUNRequestAuthorization = OnSTUNRequestAuthorization;
Server->Active = true;
Samohostowany serwer STUN — idealny do wdrożeń WebRTC on-premise i testów w chmurze prywatnej.
Przychodzące żądania Binding otrzymują w odpowiedzi XOR-MAPPED-ADDRESS, MAPPED-ADDRESS (legacy) i FINGERPRINT — zgodnie ze standardowym kształtem odpowiedzi RFC 8489.
Przełącz STUNOptions.Authentication.Enabled, aby wymagać MESSAGE-INTEGRITY, i ustaw realm w LongTermCredentials.Realm. OnSTUNRequestAuthorization udostępnia Ci nazwę użytkownika oraz realm, a Ty zwracasz pasujące hasło.
STUNOptions.BindingAttributes włącza lub wyłącza starsze atrybuty z RFC 3489, czyli MAPPED-ADDRESS, OTHER-ADDRESS, RESPONSE-ORIGIN i SOURCE-ADDRESS, a AlternateServer odpowiada 300 Try Alternate ze wskazanym przez Ciebie serwerem.
Powiąż z jedną z rodzin lub dual-stack przez IPVersion. Odpowiedź XOR-MAPPED-ADDRESS używa rodziny przychodzącego transportu.
LongTermCredentials.StaleNonce określa, jak długo nonce pozostaje ważny. Po jego wygaśnięciu serwer odpowiada 438 Stale Nonce z nowym nonce, czego wymaga RFC 8489 §9.2.
OnSTUNRequestSuccess i OnSTUNRequestError udostępniają Ci żądanie oraz odpowiedź, którą serwer zamierza wysłać, wraz z parametrem var Accept, który możesz wyzerować. LogFile zapisuje surową wymianę na dysk.
Przejdź bezpośrednio do dokumentacji komponentu, pobierz gotowy do uruchomienia projekt demonstracyjny i pobierz wersję próbną.
| Pomoc online — TsgcSTUNServer Pełna dokumentacja właściwości, metod i zdarzeń tego komponentu. | Otwórz | |
| Projekt demonstracyjny — Demos\35.P2P\02.STUN Gotowy do uruchomienia projekt przykładowy. Dostarczany w pakiecie sgcWebSockets — pobierz wersję próbną poniżej. | Otwórz | |
| Dokument techniczny (PDF) Funkcje, szybki start, przykłady kodu dla Delphi i C++ Builder oraz odniesienia do źródeł — tylko ten komponent. | Otwórz | |
| Podręcznik użytkownika (PDF) Kompleksowy podręcznik obejmujący każdy komponent biblioteki. | Otwórz |
Częste pytania o uruchamianie własnego serwera STUN w Delphi i C++ Builder.
TsgcSTUNServer, ustaw Port (domyślnie 3478) i ustaw Active := True. Serwer odpowiada wtedy na przychodzące żądania Binding kanoniczną odpowiedzią XOR-MAPPED-ADDRESS. Opcjonalnie włącz Authentication i obsłuż OnSTUNRequestAuthorization, aby wymagać MESSAGE-INTEGRITY z poświadczeniami długoterminowymi.TsgcSTUNServer to własny serwer STUN, który osadzasz bezpośrednio we własnej aplikacji Delphi lub C++ Builder, więc nie musisz wdrażać i utrzymywać osobnej instancji coturn. Jest idealny do sieci prywatnych, lokalnych wdrożeń WebRTC i bootstrapowania ICE pod Twoją własną kontrolą.