.NET MAUI

Universal Hubs: aynı hub hem Bluetooth hem Wi-Fi üzerinden

Shiny ekibinden Allan Ritchie, BLE Hubs ile kurulan hub modelini Wi-Fi üzerinden de sunan Shiny.UniversalHubs kütüphanesini tanıttı. Aynı hub kodu ve sözleşmesi iki taşıyıcıda da çalışıyor, istemci ise hangisini kullanacağını seçiyor. MAUI ile mobil oyun ya da birlikte çalışma uygulaması yazan geliştiriciler için Bluetooth'un menzil ve hız sınırlarını aşmanın somut yolunu gösteriyor.

Yayın tarihi
Okuma süresi
6 dk okuma
agent çalıştırması #9
agent çalıştırması #9
Orijinale git allanritchie.com

Bu haberi bildir

Özette bir hata mı var, ya da bu içeriğin sahibi misin? Mesajın doğrudan bana e-posta olarak gelir.

Mesaj türü

Kilit noktalar

  • Hub'ı AddUniversalServer ile bir kez tanımlayın; BLE karakteristiği ve Wi-Fi için mDNS servis tipi birlikte verilir.
  • Hub sınıfını UniversalHub<T> türünden türetin; connection.Transport ile bağlantının Ble ya da Http olduğunu görebilirsiniz.
  • İstemcide DiscoverAll() BLE ve mDNS sonuçlarını birleştirir; Prefer ile tercih edilen taşıyıcı seçilir, yoksa diğeri denenir.
  • Wi-Fi kopmaları aynı bağlantı kimliği ve gruplarla devam eder, kaçırılan push'lar yeniden gönderilir.
  • Tünel üzerinden erişim varsayılan olarak kapalıdır; her hub için AllowTunnel = true ile açıkça etkinleştirilir.
  • Hosting yalnızca ön planda çalışır ve taşıyıcı bağlantı anında seçilir; canlı taşıyıcı değişimi bu sürümde yoktur.

Shiny'nin BLE Hubs kütüphanesi, iki telefonun SignalR tarzı hub çağrılarını yalnızca Bluetooth LE üzerinden konuşmasını sağlıyor. Ancak Bluetooth'un menzili kısa, hızı düşük. Shiny.UniversalHubs bu hub'ı Wi-Fi üzerinden de erişilebilir hale getiriyor; sözleşme, hub kodu ve oyun mantığı tek yerde kalıyor, taşıyıcı seçimi istemciye bırakılıyor. Host tarafında tek bir kayıt çağrısıyla hem BLE hem de mDNS ile duyurulan bir HTTP sunucusu açılıyor. İstemci tarafında BLE ve mDNS keşfi tek listede birleşiyor ve tercih edilen taşıyıcı denenip olmazsa diğeri kullanılıyor.

Wi-Fi bağlantısı kısa süre koparsa aynı bağlantı kimliği ve gruplarla geri dönülüyor, kaçırılan push'lar tekrar gönderiliyor; hub tarafı çoğu zaman kopmayı hiç fark etmiyor. Bir hub'ı internete açmak isteyen geliştirici bunu açıkça etkinleştirmek zorunda. Hosting yalnızca uygulama öndeyken çalışıyor ve taşıyıcı bağlantı anında seçiliyor; canlı bir oyunun taşıyıcı değiştirmesi bu sürümde yok.

Gerçek dünyada kullanımı

  • Aynı evdeki telefonlar arasında oyun oynarken, Wi-Fi'da hızlı mesajlaşma ve fotoğraf paylaşımı, uçakta ise Bluetooth yedeği.
  • Bir MAUI uygulamasında yerel ağdaki cihazlar arasında gerçek zamanlı durum senkronizasyonu yapan bir hub.
  • Bir sohbet hub'ını uygulama açılışında başlatıp internet tüneli üzerinden uzaktaki bir arkadaşa açmak.

Neden önemli

Bluetooth ve Wi-Fi için ayrı sunucu ve ayrı sözleşme yazmak yerine tek hub'ı iki taşıyıcıda sürdürebilirsiniz. Mevcut BLE Hubs kodu büyük ölçüde değişmeden Wi-Fi'a taşınabilir.

Bu özet, Allan Ritchie (Shiny) üzerindeki orijinal yazıdan agent tarafından üretildi. Yazının tamamı ve tüm hakları ilgili yazara/yayıncıya aittir. Orijinal yazıya git

Benzer haberler

Geri bildirim

Bir hata mı buldun, bir fikrin mi var? Yazdığın mesaj doğrudan bana e-posta olarak gelir.

Mesaj türü