2015-01-16 2 views
0

Я создаю приложение типа viber, то есть пользователи андроида могут создавать мгновенные сообщения в своих устройствах на базе Android. Я создал веб-сервисы от клиента к серверу с помощью ASP.NET (служба ASMX с ответом JSON), и он работает как шарм, но с другой стороны, то есть запросы от сервера к клиенту - это лишь небольшая головная боль. Конечно, я могу сделать свое приложение таким образом, чтобы не требовалось запросов от сервера к клиенту (отправка коротких запросов с клиента на сервер в короткие периоды времени), но таким образом сервер будет перегружен специально, когда число пользователей увеличивается. Я нашел несколько технологий обмена мгновенными сообщениями, включая GCM и XMPP. Каковы мои другие варианты? или позвольте мне спросить, каков мой лучший вариант? Должен ли я использовать сокеты? Если да, то как я могу всегда иметь IP-адрес моих клиентов (учитывая, что клиенты являются мобильными пользователями, которые могут использовать Wi-Fi или GPRS/3G/4G интернет). Я думаю о системе, в которой мои клиенты отправляют свой IP каждый n секунд (n может быть около 30), поэтому сервер всегда имеет (почти) обновленный список клиентских IP-адресов. Возможно ли это или даже логично?Отправка данных с ASP.NET на android

ответ

0

Вы определенно должны рассмотреть возможность использования GCM (Google Cloud Messaging for Android)

Вам нужно установить несколько вещей на сервере, чтобы иметь возможность использовать его для отправки через GCM. Его встроенный способ передачи данных от сервера к андроид устройства, надеюсь, что это может помочь

Implementing GCM Server

0

Использование старой доброй стратегии длительного опроса всегда возможно, но есть гораздо более эффективные способы сделать это сейчас. Это, пожалуй, самый быстрый для реализации упомянутых (не так, если вы хотите правильно его реализовать и с минимальным количеством нагрузки на ваш сервер/механизм БД). Я видел некоторые проекты, которые начинаются вокруг этой архитектуры с идеей перейти к чему-то лучшему в будущем ... и момент, чтобы двигаться никогда не приходит, конечно. Если вы начнете просматривать свой Android-телефон, подключенный к прокси-серверу, например, Charles, вы увидите, что я имею в виду :)

WebSockets - это вариант, но я не вижу причины, по которой я бы использовал их для Viber-like приложение, основанное на событиях (вы получили сообщение), а не «в режиме реального времени» (например, мониторинг некоторых движений графической графики).

Ваш лучший выбор здесь a Google Cloud Messaging (GCM)! Его легко реализовать как на вашем бэкэнд, так и на клиенте, и он построен специально с учетом проблемных подключений (переключение между Wi-Fi/плохим 3g/4g/etc). У этого есть некоторые довольно приятные функции, которые другие методы не предоставляют «из коробки» - пересылку сообщения (общий сценарий клиента, теряющий его соединение - GCM, он отправит push-уведомление позже, когда он выйдет онлайн), автоматически синхронизация между устройствами (смартфон, планшет и т. д.) и другие.

+0

Простите, бит, но у меня точно такой же вопрос. Я тоже чувствую, что опрос блокирует ресурсы при увеличении трафика. Некоторые ребята говорят, что используют Push-уведомления? Вы пробовали GCM? что вы чувствуете @Ali_dotNet? что сработало лучше всего для вас? Im в основном заинтересованы в подключении Asp.Net к моему устройству Android, каких-либо успехов/подсказок? – user3833732

+1

Push-уведомления точно такие же, как и GCM :). Точнее, GCM означает Google Cloud Messaging и в основном это инфраструктура, которую вы используете для реализации push-уведомлений. Не сомневайтесь в этом, определенно пойдите для GCM! – Vesko

Смежные вопросы