Как отправлять данные между двумя телефонами, на которых запущено мое приложение, используя сотовые данные

#android #ios #react-native #expo #p2p

Вопрос:

Я хотел бы, чтобы мое приложение могло создавать P2P-соединения между пользователями как по Wi-Fi, так и по сотовой связи (если Wi-Fi доступен, я буду его использовать, но оно также должно поддерживать сотовую связь).

Я видел много вопросов/ответов, касающихся Wi-Fi, но ни одного для сотовой связи. Возможно ли это?

Если да, то существуют ли какие-либо библиотеки/пакеты, которые помогают это сделать?

Решение также должно будет поддерживать как iOS, так и Android и быть кросс-совместимым между ними.

Комментарии:

1. Вам нужен сервер в Интернете, чтобы обеспечить своего рода «рандеву». Возможно, вам удастся установить одноранговое интернет-соединение (некоторые поставщики услуг будут использовать NAT, что делает это невозможным), но вам необходимо знать IP-адреса обеих сторон. Это то, что может сделать ваш сервер. Каждое устройство должно будет подключиться к вашему серверу, а затем сервер может предоставить «другой» адрес IAP каждой стороне

2. Проблема будет в том, как два телефона в физической близости обнаружат друг друга. Я на ATamp;T, человек в двух футах от меня находится на Verizon. (Даже если бы мы были на одном и том же перевозчике, возникла бы та же проблема, но сценарий с другим перевозчиком резко облегчает проблему.) Один из них ни за что не сможет обнаружить другого по сотовой связи в одиночку. Вы можете либо отправлять данные о местоположении в свой веб-сервис (и он определяет географическую близость), либо полагаться на другие локальные механизмы, например, BLE, Wi-Fi, ультразвук и т.д.).