Arquitectura de Peer-to-Peer de Android / iOS

Esta es una especie de amplia pregunta, he encontrado mucha información sobre este tema.

Posibles tecnologías

  • Bluetooth
    • GameKit iOS solamente?
    • Bluetooth P2P biblioteca, con Wi-Fi y GPS?
  • Wifi
    • ¿Wi-Fi directo?
    • Bonjour zeroconf?

Ninguno de estos tiene actualmente una biblioteca de peer-to-peer completamente implementada, o no he encontrado tal.
De hecho, no estoy interesado en ningún tipo de biblioteca de juegos (y no apunto a estos problemas)

Preguntas que había considerado

  • Conexión punto a punto en android
    • Android desde API 14 y sin soporte para uso multiplataforma
  • Tecnología Peer-to-Peer de Android
    • ANI ( https://github.com/pocmo/Android-Network-Intents ) sólo la red interceptada
    • DIAL, MOVL sólo wi-fi
  • Conexión Peer-to-Peer de Android
    • C2DM / GCM requiere datos móviles
  • ¿Puede Android hacer redes ad-hoc peer-to-peer?
    • Sólo Wifi Directo
  • Peer-to-Peer de vídeo de iOS a Android?
    • Requiere datos de red y servidor
  • Http://forum.unity3d.com/threads/141469-Wifi-Bluetooth-Multiplayer-on-iOS-and-Android
    • GameKit is compatible only with other GameKit
  • Https://www.alljoyn.org/docs-and-downloads/documentation/alljoyn-android-environment-setup-guide-rev-d
    • Bluetooth no está bien soportado, y requiere el enraizamiento del dispositivo.

Me gustaría comunicar eficientemente entre tantos dispositivos como sea posible, sin necesidad de usar datos móviles (3G, HS * PA, LTE) o WIFI AP como punto intermedio.
Y no conectar a la gente a grandes distancias, realmente como un PAN sobre Bluetooth.

Así, qué características necesito tener

  • Totalmente OFFLINE (que no requiere servicios de datos móviles ni AP de wifi)
  • Compatibilidad entre plataformas (Android, iOS)
  • Compatibilidad con versiones anteriores del sistema operativo móvil (Android desde 2.3, iOS desde 5.1.1)

Características que me gustaría tener

  • Optimización de rutas (OSPF, MME, …)
  • No requiere que los dispositivos autoricen a la red (consulte Android RFCOMM inseguro )
  • Posibilidad de envolver hasta a decenas de usuarios (20-30 máximo imo, o más si es posible)
  • Si es necesario, la red podría elegir su propio líder (nodo servidor)?

¿Hay actualmente algo que podría utilizar para las funciones mencionadas?

Sé que google acaba de salir con una plataforma cruzada api para ios y dispositivos Android para comunicarse entre sí. No sé lo que está buscando exactamente, pero este le permite pasar pequeñas cargas binarias entre dispositivos Android y IOS. No tienen que estar en la misma red en absoluto o conectado a Internet. Voy a incluir el enlace sólo echa un vistazo.

https://developers.google.com/nearby/messages/overview

Open Garden está desarrollando este tipo de tecnología y la implementa en su aplicación, Firechat. Al probar la aplicación, encontramos que las conexiones de Android a Android funcionaban sólo con Bluetooth, el iPhone con el iPhone funcionaba con bluetooth o wifi y Android a iPhone sólo funciona si los teléfonos están conectados a la misma red. Aquí hay un enlace a su sdk que debería salir pronto: https://opengarden.com/sdk

Me gustaría ver en los datacanales WebRTC que tiene soporte nativo para iOS y Android . También puede incluir navegadores de escritorio como pares con WebRTC.

  • Conexión de dos dispositivos mediante libgdx
  • IO sin bloqueo para Android
  • Configurar una conexión Wifi-Direct entre Android y Raspberry Pi 3 Linux
  • WifiDirectActivity Alteración de la muestra: Transfiere un ArrayList <String> p2p
  • Comunicación P2P en tiempo real entre dispositivos móviles
  • ¿Puede Android hacer redes ad-hoc peer-to-peer?
  • Android Wifi Direct detecta a sus compañeros pero Peer List es emty
  • Conecte 2 o más clientes de Android directamente
  • ¿Empujar datos de un dispositivo a otro?
  • Problemas de demostración directa de Android WiFi
  • Red inalámbrica Wi-Fi de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.