Describe Network framework

This commit is contained in:
2026-05-05 20:33:59 +02:00
parent d77170336e
commit d13463326b
2 changed files with 4 additions and 4 deletions
+2 -2
View File
@@ -33,9 +33,9 @@ Obiektem identyfikującym urządzenie miedzy sesjami jest MCPeerID, zawierający
W czasie odkrywania urządzeń w pobliżu, mamy jedynie dostęp do ograniczonej ilości informacji, które dystrybuowane przez nadawców. Dopiero po wysłaniu zaproszenia przez odkrywcę, a następnie akceptacji przez nadawcę, możemy wykorzystać w pełni interfejs Multipeer Connectivity do komunikacji.
// zalety, wady
Network jest frameworkiem skupionym na ogólnej interakcji z połączeniami sieciowymi. Oprócz lokalnego dostępu do innych urządzeń, daje możliwość wykorzystania całej dostępnej infrastruktury sieciowej. Apple w przypadku tworzenia aplikacji w oparciu o połączenia peer to peer, zaleca łączenie Network z biblioteką DeviceDiscoveryUI, która zapewnia dodatkowy interfejs graficzny dla użytkownika aplikacji implementujący proces parowania. W ramach tego procesu Apple pozwala na wybór protokołu do komunikacji w czasie parowania. Mamy do wyboru Bonjour - starszy, należący do Apple protokół - oraz Wi-Fi Aware - otwarty, międzyplatformowy standard. DeviceDiscoveryUI jest nową biblioteką, dostępną od systemów operacyjnych wydanych w 2025 roku - iOS 26, iPadOS 26, macOS 26. Wyjątkiem jest wsparcie dla tvOS, tutaj Apple oferuje wsparcie od wersji 16, wydanej w 2022 roku. Wi-Fi Aware jest również dostępny dopiero od systemów wydanyc w 2025 roku. Network wraz z własnym protokołem ramkowania jest dostępny od wersji systemów operacyjnych wydanych w 2019 roku.
=== Network
W przypadku oparcia aplikacji komunikujacej się peer to peer z innymi urządzeniami o Network, musimy przygotować własny protokół ramkowania `NWProtocolFramerImplementation`. W nim powinniśmy obsłużyć wszystkie wydarzenia związane z poprawnym zarządzaniem połączeniem - inicjację, powrót z uśpienia, zatrzymanie, proces czyszczenia prze dealokacją. Do nasłuchiwania na przychodzące połączenia wykorzystalibyśmy obiekt `NWListener`. Połączenie z innymi urządzeniem byłoby reprezentowane przez obiekt `NWConnection`, a jeśli chcielibyśmy zaimplementować własny proces odkrywania i negocjacji połączenia z pobliskimi urządzeniami, musielibyśmy dodatkowo wykorzystać obiekt `NWBrowser`.
// == Analiza istniejących rozwiązań <analiza>
// === Aplikacje zcentralizowane
BIN
View File
Binary file not shown.