Windows üzerinde sgcWebSockets ile TLS kullanmak, şimdiye kadar her zaman libcrypto ve libssl dosyalarının çalıştırılabilirinizin yanında, doğru OpenSSL sürümü ve bit genişliğiyle eşleşecek şekilde dağıtılmasını gerektirdi. sgcWebSockets artık OpenSSL'i doğrudan çalıştırılabilirin içine bağlayabiliyor, böylece dağıtılacak bir DLL, eşleştirilecek bir sürüm veya bunları tutacak bir klasör kalmıyor. Bu özellik Enterprise ve All-Access sürümlerinde mevcuttur.
Tek unit, başka hiçbir yapılandırma yok
Etkinleştirilecek bir derleyici direktifi veya seçilecek bir OpenSSL API sürümü yoktur. Projenizin uses bölümüne sgcIdSSLOpenSSL_Static unit'ini ekleyin; bir sonraki çalıştırmadan itibaren uygulamanız, hem istemci hem de sunucu bileşenleri için .exe içine bağlanmış OpenSSL kitaplığını kullanır.
uses
sgcWebSocket, sgcWebSocket_Classes,
sgcIdSSLOpenSSL_Static;
Unit'i uses bölümünden kaldırdığınızda uygulamanız eskisi gibi OpenSSL DLL'lerini yüklemeye geri döner. Kodunuzda, TLS ayarlarınızda, sertifikalarınızda ve bağlantı mantığınızda başka hiçbir değişiklik yapmanız gerekmez, her iki durumda da aynı kalır.
İstemcilerde ve sunucularda, Win32 ve Win64'te çalışır
Statik bağlama, TsgcWebSocketClient ve TsgcWebSocketServer için olduğu kadar, TLS üzerinden çalışan diğer tüm sgcWebSockets veya sgcIndy bileşenleri için de, hem 32 bit hem de 64 bit derlemelerde eşit şekilde geçerlidir. Yüzlerce bağlantı için TLS sonlandıran bir sunucu ile tek bir uç noktaya bağlanan bir istemci, projede yalnızca bu unit bulunduğu sürece, bağlanmış OpenSSL'i aynı şekilde kullanır.
OpenSSL 3.5.7, güncel tutuluyor
Şu anda bağlanan OpenSSL sürümü 3.5.7'dir. Yeni OpenSSL sürümleri çıktıkça, bu sürüm gelecekteki sgcWebSockets güncellemelerinde yenilenir, böylece OpenSSL ikili dosyalarını kendiniz takip etmeniz, indirmeniz veya yeniden dağıtmanız gerekmez, normal bir bileşen güncellemesi yeterlidir.
Gereksinimler
- Yalnızca Windows, 32 bit ve 64 bit. macOS, Android veya iOS üzerinde kullanılamaz ve .NET sürümünün bir parçası değildir.
- Delphi XE2 veya üzeri. Daha eski Delphi sürümleri bu formatta bir nesne dosyasını bağlayamaz, bu nedenle bu sürümlerde unit hiçbir şeye derlenmez ve uygulamanız kod değişikliği yapılmadan her zamanki gibi OpenSSL DLL'lerini yüklemeye devam eder.
- Yalnızca sgcWebSockets Enterprise ve All-Access sürümlerinde ve yalnızca özel Indy kitaplığı kullanıldığında mevcuttur; bu, bu sürümler için varsayılan ayardır.
XE2'den eski bir Delphi sürümüyle derleme yapıp yine de unit'in bağlanmasını bekliyorsanız E2045 Bad object file format hatasını görürsünüz. Çözüm, sgcIdSSLOpenSSL_Static unit'ini uses bölümünden kaldırmaktır; uygulamanız OpenSSL DLL'leriyle çalışmaya devam eder.
Bu ne zaman işe yarar
Statik bağlama, tek bir dosya olarak dağıtım yapmak istediğinizde, hedef makinede doğru OpenSSL DLL'inin kurulu olacağından emin olamadığınızda veya dağıtım sürecinizin çalıştırılabilirin yanına ek dosya eklenmesine izin vermediği durumlarda, örneğin kilitli bir kurulum dizininde veya tek bir ikili dosya olarak dağıtılan bir araçta faydalıdır.
Kullanılabilirlik
Statik OpenSSL bağlama, sgcWebSockets'in Enterprise ve All-Access sürümlerinde sunulur. sgcWebSockets'in her platformda desteklediği TLS arka uçlarının tam resmi için SSL / TLS bölümüne ve OpenSSL TLS arka ucu sayfasına bakın.
sgcWebSockets indirme sayfasından indirin, ya da GetIt üzerinden veya kayıtlı hesabınız aracılığıyla edinin.
DLL'siz bir dağıtım planlarken sorularınız veya geri bildiriminiz mi var? Bizimle iletişime geçin, yanıtı kodu yazan kişilerden alacaksınız.
