Я создаю клиент-серверное приложение с устройства Android на сервер через 3G.
Из-за оператора сети, который предоставляет 3G, клиентское устройство находится за NAT. Поэтому сервер не может установить соединение с клиентом. Я мог бы принять подход опроса, но прежде чем сделать это, я хочу исчерпать все другие варианты. Есть ли какой-то способ (я еще не нашел) сохранить соединение TCP Socket открытым между клиентом и сервером, чтобы сервер мог инициировать связь с клиентом?
Сценарий состоит в том, что будет очень регулярное соединение клиент / сервер, основанное на состоянии сервера, которое обновляется на очень регулярной основе - мы будем говорить каждые пару секунд. Будет ли UDP лучшим вариантом здесь? Может быть, нет, поскольку проблема NAT все еще сбивает его с ног.
Есть ли другие доступные мне варианты?
Большое спасибо