Сервер мгновенных сообщений на Android за NAT-роутером - PullRequest
1 голос
/ 02 сентября 2010

Я делаю IM-приложение для Android. Приложение состоит из сервера и клиента, оба проживают на Android. При запуске приложения регистрируются на веб-сервере. Если клиент хочет отправить IM на сервер за маршрутизатором NAT, как это сделать? Я слышал о stun4j и jstun, но нигде не нашел примера их использования в Android. Спасибо!

Ответы [ 2 ]

1 голос
/ 02 сентября 2010

Почему сервер должен быть на устройстве?

Это кажется неэффективным, Android лучше всего работает как типичное клиентское устройство.

Создание приложения для обмена мгновенными сообщениями довольно просто.

Просто попросите клиента отправлять сообщения на веб-сервер, сохранять их.
Пусть другие клиенты ждут или запрашивают сообщения от веб-сервера.

Это будет работать независимо от типа подключения к Интернету.

Если вы настаиваете на наличии сервера на устройстве, я думаю, что самое близкое решение, которое вы получите, - это использовать какое-тоБиблиотека upnp.

С помощью upnp вы можете просто указать маршрутизатору автоматически настроить NAT для порта вашего сервера.

Это не будет работать для пользователей, которые отключили upnp на своих маршрутизаторах.

0 голосов
/ 02 сентября 2010

stun4j - это не универсальное решение, которое будет работать для всех NAT.

Самое простое и надежное решение - отправлять сообщения через внешний веб-сервер с известным адресом.

...