0

Я хочу создать приложение для Android, которое передает данные с беспроводных датчиков (около 3 кб/с) на мой сервер.Возможно ли передавать данные с помощью GCM?

Чтобы разбудить телефон, оказалось, что я не могу с легкостью использовать сокет с моего сервера, но вам требуется уведомление о выпуске GCM. Однако, если Im реализует все материалы GCM только для начала потоковой передачи, было бы проще использовать GCM для потока данных, а не для собственной реализации websocket.

Документы говорят, что пакет может быть максимальным 4 kb, и этого должно быть достаточно, если устройство может надежно передавать их один раз в секунду. Но поскольку GCM не был разработан для таких быстрых интервалов и диапазонов, есть ли у кого-нибудь опыт, если он будет осуществимым и надежным, или было бы лучше открыть прямое подключение к моему серверу?

+0

Это было бы невозможно. Нет гарантии, что сообщение будет доставлено. На практике задержка может варьироваться от почти мгновенного до десятков минут. – NickT

ответ

0

Я бы пошел с прямым подключением к вашему собственному серверу, главным образом потому, что, как вы говорите, служба GCM не была специально разработана для этого, и Google удерживает право отключать соединение и откладывать уведомления GCM, если они думают, что вы используют слишком большую пропускную способность. Я сам это испытал при проведении стресс-тестов - уведомления начинают замедляться, и в конце концов учетные записи gmail запрещают использование устройств, в которых используется использование.

Общий шаблон для GCM должно быть что-то подобное:

  1. Что-то происходит на сервере, что устройства должны знать о.

  2. Уведомление GCM отправляется на устройство с небольшой полезной нагрузкой, например CommandNumber = 1.

  3. Устройство прослушивает уведомление, а поскольку CommandNumber == 1 отвечает определенным образом, что в этом случае может открыть сокет на вашем сервере.

+0

Проблема с этой опцией заключается в том, что если наша компания должна закрыть свои серверы в будущем, приложение также перестанет функционировать. Я ищу способ отправки сообщений в другие экземпляры приложения, и если это было чисто основано на GCM, нам не нужно поддерживать сервер только для туннелирования этого трафика. – Muis

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