/ / Interfejsy API nie reagują szybko, czy aplikacja korzysta z platformy Multipeer Connectivity Framework - iOS, API, praca w sieci, łączność z wieloma użytkownikami

API nie reagują szybko, ponieważ APP używa frameworku Multipeer Connectivity - ios, api, afnetworking, multipeer-connectivity

Korzystam z platformy Multipeer Connectivity FrameworkAplikacja działa poprawnie, ale gdy APP wywołuje dowolny interfejs API lub pobiera dowolny plik z serwera, opóźnia to odpowiedź. Czasem się nie udaje, a czasem pojawia się błąd przekroczenia limitu czasu.

Sprawdziłem również status „Sieć” na xCodedebugujący nawigator i stwierdził, że prędkość rośnie w górę i w dół natychmiast i nigdy nie przekracza 6 kb / s, a czasami pokazuje się jako 0 kb / s, ale kiedy wyłączę łączność Multipeer, to działa dobrze i prędkość również wynosi 70 kb / s.

Zauważyłem również, że jeśli Bluetooth jest włączony, to dzieje się tak nie z Wi-Fi.

Wszelkie sugestie byłyby naprawdę znaczące.

Odpowiedzi:

0 dla odpowiedzi № 1

Dzieje się tak, ponieważ podczas reklamy Multipeer zawsze reklamuje się w Wi-Fi (nie można powiedzieć, że tylko Bluetooth). Sposób, w jaki się reklamuje, jest przełączanie trybu dostępu Wi-Fi w tryb adhoc wiele razy na sekundę aby znaleźć innych użytkowników, a następnie wrócić do trybu AP (tj. wznowić połączenie z routerem Wi-Fi). Robienie tego jest wysoce zakłócające do dużych transferów.

Masz dwie opcje, aby to naprawić:

1) jak najszybciej po nawiązaniu połączenia zadzwoń stopAdvertising(). Zapobiegnie to ciągłej zmianie trybu Wi-Fi, a przepustowość zostanie wznowiona w normalnym tempie. Ostrzeżenie: nie można tego mikro-zarządzać, ponieważ zajmuje to do 30 sekund od połączenia stopAdvertising() aż zacznie obowiązywać

2) przełącz się z Multipeer na alternatywną strukturę, która pozwala określić tylko bluetooth i używać tylko bluetooth. Napisałem jeden o nazwie BluePeer których używam w moich aplikacjach. Jest to tryb emisji pojedynczej (nie multiemisji) i obsługuje role takie jak Klient / Serwer (a także funkcje bez roli, takie jak Multipeer)