Это довольно широкий вопрос, я нашел много информации об этой теме.
Возможные технологии
- Bluetooth
- Только для GameKit iOS?
- Bluetooth P2P-библиотека с Wi-Fi и GPS?
- Wi-Fi
- Wifi Direct?
- Bonjour zeroconf?
В настоящее время ни одна из них не имеет полностью реализованной одноранговой библиотеки, или я ее не нашел.
На самом деле меня не интересует какая-либо игровая библиотека (и я не нацелен на такие проблемы)
Вопросы, которые я рассматривал
- Соединение с одноранговым узлом в android
- Android с API 14 и поддержка межплатформенного использования
- Android Peer-to-Peer technolog
- ANI (https://github.com/pocmo/Android-Network-Intents) только сеть перехвачена
- DIAL, только MOVL wi-fi
- Одноранговое соединение Android
- C2DM/GCM требует мобильных данных
- Может ли Android сделать одноранговую сеть ad-hoc?
- Только прямой Wi-Fi
- Одноранговое видео от iOS до Android?
- Требуется сетевые данные и сервер
- 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 не поддерживается и требует укоренения устройства.
Я хотел бы эффективно общаться между как можно большим количеством устройств, без необходимости использования мобильных данных (3G, HS * PA, LTE) или WIFI AP в качестве промежуточной точки.
И не подключая людей на большие расстояния, действительно так же, как PAN через Bluetooth.
Таким образом, какие функции мне потребуется, чтобы
- Полностью OFFLINE (не требуя каких-либо мобильных услуг передачи данных или Wi-Fi AP)
- Кросс-платформенная совместимость (Android, iOS)
- Обратная совместимость с ОС Android (начиная с версии 2.3, iOS с версии 5.1.1)
Возможности, которые я хотел бы иметь
- Оптимизация маршрута (OSPF, MME,...)
- Не требует от устройств авторизации для сети (см. Android небезопасный BT RFCOMM)
- Возможна упаковка до десятков пользователей (20-30 max imo или больше, если это возможно)
- При необходимости сеть может выбрать своего лидера (сервер node)?
Есть ли что-нибудь, что я мог бы использовать для указанных функций?