2012-04-20 3 views
1

Каков наилучший способ создать двустороннюю постоянную связь между сервером и Android-приложением?Android-приложение, открытое подключение к мобильным устройствам

Когда я говорю о постоянной связи, я имею в виду клиентский сервер для передачи данных или сервера, постоянно подталкивающих данные к клиентам.

Из того, что я видел, я не могу использовать веб-порты, поскольку они являются конструкторами для настроек сервера/браузера. Это правильно? Если да, какова альтернатива?

Есть ли свободные рамки для работы с этим в Android?

То, что я пытаюсь сделать, - это приложение, которое работает как чат, но для нескольких людей. Таким образом, все они будут попадать в одну «комнату или канал» на своих устройствах, а затем взаимодействовать друг с другом, каким-то образом управляемым сервером.

Спасибо!

+0

Ребята, извините за самый длинный раз в этом. Спасибо за помощь. – decio

ответ

0

Для непрерывного подключения к информации вы можете использовать Sockets. Но вы также должны учитывать тот факт, что всегда открытое соединение слишком быстро разряжает батарею. Для получения более подробной информации читайте this и this

1

Насколько я знаю, одним из возможных способов является использование веб-службы, в которой клиент может подключаться к серверу, если веб-служба RESTFul имеет много библиотек для доступа к ней, одним из них является apache HTTPClient, для сервер, нажимая единственный способ, которым я знаю, - это C2DM для передачи данных клиентам.

0

Вы можете посмотреть на AutobahnAndroid:

https://github.com/tavendo/AutobahnAndroid

который обеспечивает встроенную базу клиента Android/Java WebSocket (плюс WAMP = PubSub/RPC через WebSocket .. http://wamp.ws).

Это полностью совместимо с серверами WebSocket, которые используют серверные браузеры.

Библиотеки AutobahnXX (где XX = Python, JS, Android) являются Open-Source (Apache 2.0). Мы (Tavendo) предлагаем коммерческое виртуальное устройство на базе Autobahn: http://autobahn.ws

Отказ от ответственности: Я являюсь автором Autobahn и работаю в Tavendo.

0

Но поддержание соединения, выполняющегося на фоне устройств iOS и Android, позволяет слить аккумулятор, для людей, у которых есть эта проблема, я предлагаю использовать push-уведомления, когда приложение не находится на переднем плане.

0

Из того, что я видел, я не могу использовать веб-порты, поскольку они являются конструкторами для настроек сервера/браузера . Это правильно? Если да, какова альтернатива?

Websocket является протоколом IETF/W3C, поэтому он не ограничивается конкретной клиентской платформой. Вы можете использовать Android-сервер Android для двусторонней связи между Android и сервером. Для клиента websocket для Android я рекомендую использовать AndroidAsync. Он имеет все API-интерфейс websocket, что вам необходимо установить связь и обмен данными между Android и сервером.

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