Architektura peer-to-peer systemu Android / iOS

To rodzaj szerokiego pytania, znalazłem wiele informacji na ten temat.

Możliwe technologie

BluetoothTylko GameKit iOS?Biblioteka Bluetooth P2P z Wi-Fi i GPS?Wi-FiWifi Direct?Bonjour zeroconf?

Żadna z nich nie ma obecnie w pełni zaimplementowanej biblioteki peer-to-peer, ani nie znalazłem takiej.
W rzeczywistości nie interesuje mnie żadna biblioteka gier (i nie atakuję takich problemów)

Pytania, które rozważałem

Połączenie peer-to-peer w systemie AndroidAndroid od API 14 i brak wsparcia dla korzystania z różnych platformAndroid peer-to-peer technologANI (https://github.com/pocmo/Android-Network-Intents) przechwycono tylko siećDIAL, MOVL tylko wi-fiPołączenie Peer-to-Peer systemu AndroidC2DM / GCM wymaga danych mobilnychCzy Android może korzystać z sieci ad-hoc typu peer-to-peer?Tylko Wifi bezpośrednieWideo peer-to-peer z iOS na Androida?Wymaga danych sieciowych i serwerahttp://forum.unity3d.com/threads/141469-Wifi-Bluetooth-Multiplayer-on-iOS-and-AndroidGameKit is compatible only with other GameKithttps://www.alljoyn.org/docs-and-downloads/documentation/alljoyn-android-environment-setup-guide-rev-dBluetooth nie jest dobrze obsługiwany i wymaga zakorzenienia urządzenia.

Chciałbym efektywnie komunikować się z jak największą liczbą urządzeń, bez potrzeby korzystania z danych mobilnych (3G, HS * PA, LTE) lub WIFI AP jako punktu pośredniego.
I nie łączenie ludzi na duże odległości, tak jak PAN w Bluetooth.

Tak więc, jakie funkcje musiałbym mieć

Całkowicie w trybie offline (nie wymaga żadnych mobilnych usług transmisji danych ani wifi AP)Zgodność między platformami (Android, iOS)Kompatybilność wsteczna Mobile OS (Android od 2.3, iOS od 5.1.1)

Funkcje, które chciałbym mieć

Optymalizacja trasy (OSPF, MME, ...)Nie wymaga urządzeń do autoryzacji do sieci (patrz Androidniepewny BT RFCOMM)Możliwe zawijanie do kilkudziesięciu użytkowników (imo 20-30 max lub więcej, jeśli to możliwe)W razie potrzeby sieć może wybrać własnego lidera (węzeł serwera)?

Czy jest coś, co mógłbym wykorzystać do wspomnianych funkcji?

questionAnswers(4)

yourAnswerToTheQuestion