TURN Sunucusu

Delphi ile kendi TURN (RFC 8656) sunucunuzu çalıştırın. Eşler arası bir yol kuramayan istemciler için, uzun vadeli kimlik bilgileri ve ayırma başına kotalarla aktarmalı taşıma adresleri ayırın.

TsgcTURNServer

Kendi barındırdığınız bir TURN sunucusu — Allocate / CreatePermission / ChannelBind / Send / Refresh / Data işler, ayırmaları ve bant genişliğini yönetir, uzun vadeli kimlik bilgilerini doğrular.

Bileşen sınıfı

TsgcTURNServer

Protokol

TURN (RFC 8656)

Platformlar

Windows, macOS, Linux, iOS, Android

Sürüm

Enterprise

Bırakın, realm ayarlayın, kimlik bilgilerini dağıtın

Port + Realm ayarlayın, OnTURNAuthenticate aracılığıyla kullanıcı başına parolalar sağlayın, Active := True — sunucunuz artık herhangi bir RFC 8656 istemcisi için aktarmalar ayırır.

uses
  sgcP2P;

var
  TURNServer: TsgcTURNServer;
begin
  TURNServer := TsgcTURNServer.Create(nil);
  TURNServer.Port  := 3478;
  TURNServer.Realm := 'turn.example.com';

  TURNServer.OnTURNAuthenticate := procedure(Sender: TObject;
    const aUsername: string; var aPassword: string;
    var Accept: Boolean)
  begin
    aPassword := LookupPassword(aUsername);
    Accept    := aPassword <> '';
  end;

  TURNServer.Active := True;
end;
// uses: sgcP2P
TsgcTURNServer *TURNServer = new TsgcTURNServer(this);
TURNServer->Port  = 3478;
TURNServer->Realm = "turn.example.com";
TURNServer->Active = true;

İçinde neler var

Kendi barındırdığınız bir aktarma — WebRTC ve ICE dağıtımlarınızın üçüncü taraf TURN sağlayıcılarına bağımlı olmasını ortadan kaldırır.

Allocate / Refresh / Free

REQUESTED-TRANSPORT içeren Allocate isteklerini karşılar, boş bir aktarma portu seçer ve ömrü izler. Refresh ayırmayı uzatır; süre dolduğunda sunucu ayırmayı kaldırır.

CreatePermission / ChannelBind

Ayırma başına eş izinlerini ve kanal bağlamalarını izler. RFC 8656 §9 uyarınca izin verilmemiş eşler için Send/Data çerçevelerini bırakır.

Send / Data / ChannelData

Hem 36 baytlık Send / Data zarfları hem de 4 baytlık ChannelData çerçeveleri desteklenir. Aktarma, datagramları aktarmalı taşıma adresi ile bağlı eş arasında iletir.

Uzun vadeli kimlik bilgileri

OnTURNAuthenticate kullanıcı adını sunar; siz parolayı döndürürsünüz — sunucu MESSAGE-INTEGRITY değerini doğrular ve nonce değerlerini otomatik olarak değiştirir.

Kotalar

Suistimali sınırlamak için Quota.MaxAllocationsPerUser, Quota.MaxBandwidthKbps, Quota.AllocationLifetime değerlerini ayarlayın. OnQuotaExceeded reddetmeleri bildirir.

TCP / TLS üzerinden TURN

Temel sunucunun taşımasını değiştirin — UDP, TCP ve TCP üzerinden TLS'nin tümü desteklenir. WebRTC istemcileri, NAT'larından geçen hangisiyse onu seçer.

Spesifikasyonlar ve referanslar

Bu bileşenin uyguladığı protokol için yetkili kaynaklar.

Belgeler ve Demolar

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

Çevrimiçi Yardım — TsgcTURNServer Bu bileşen için tam özellik, metot ve olay referansı.
Demo Projesi — Demos\35.P2P\03.TURN Çalışmaya hazır örnek proje. sgcWebSockets paketinin içinde gelir — denemeyi aşağıdan indirin.
Teknik Belge (PDF) Özellikler, hızlı başlangıç, Delphi ve C++ Builder için kod örnekleri ve birincil kaynak referansları — yalnızca bu bileşen.
Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz.

Kendi TURN Sunucunuzu Çalıştırmaya Hazır mısınız?

Ücretsiz denemeyi indirin ve Delphi ile bir TURN aktarması ayağa kaldırın.