Постоянное соединение между GWT и клиентом Android (или между App Engine) - PullRequest
0 голосов
/ 27 декабря 2011

Я пытаюсь добиться соединения между браузером пользователя (зарегистрированным с помощью своей учетной записи Google) и приложением Android на своем телефоне (также зарегистрированным с помощью той же учетной записи Google). Я хочу отправить на устройство кучу текста в формате JSON из GWT и наоборот.

Моей первой мыслью было отправить пинг C2DM на устройства Android и активировать службу, которая напрямую подключается к серверу App Engine или клиенту GWT (если это возможно).

То, что я сейчас делаю, это сокет с Channel API от GWT до App Engine. А для большого объема текста я бы просто отправил уведомление через канал клиенту GWT, который затем получает данные с помощью RPCall. Отсутствует связь между App Engine и приложением Android. Что я мог сделать, так это C2DM для одного направления и простые HTTP-запросы для другого направления. Мне не нравится это решение, потому что C2DM иногда может быть очень медленным. Есть ли решение для соединения этих двух (приложение GAE & Android) или, что еще лучше, без App Engine и прямой связи между клиентом GWT и клиентом Android?

Заранее спасибо:)

Ответы [ 2 ]

0 голосов
/ 05 января 2012

Если я правильно понимаю ваш вопрос, вы ищете отправку сообщений с сервера (в вашем случае GAE) в приложение для Android без с использованием C2DM?В этом случае вы можете попробовать pubnub .

Изменить: конечно, у вас есть несколько вариантов в этой области (другой - Urban Airship ), но вы 'Заметим, что они не дешевые!

0 голосов
/ 28 декабря 2011

Я не уверен, что вы подразумеваете под «соединением между GWT и Android напрямую» - вы имеете в виду соединение между клиентом GWT и телефоном Android?Если это так, то нет хорошего способа сделать это без установки клиентского программного обеспечения;вам понадобится какой-нибудь сервер для прокси-сообщений.

Итак, учитывая, что вы уже используете App Engine и GWT, а C2DM потенциально слишком медленный, вы можете свернуть HTML-страницу на Android ииспользуйте API канала.Затем, когда вы получаете сообщения, пусть ваш клиент javascript (опять же, работающий на Android) вызывает контейнер, чтобы делать все, что вы захотите.

Это хорошо, потому что у вас есть паритет в доставке сообщений между клиентами вашего браузера и вашим Androidклиентов.Это нехорошо, потому что он не является родным и, вероятно, будет расходовать заряд батареи, в отличие от C2DM.

В идеале я знаю, что вы хотите, чтобы нативный API для Android использовал сообщения API канала.Вы можете проголосовать за этот вопрос, но я, к сожалению, не могу предоставить ETA для него: http://code.google.com/p/googleappengine/issues/detail?id=4189

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...