Как реализовать MQTT в этом конкретном случае использования Android?

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

Сомнения:

  1. Как отправить данные конкретному пользователю на разных устройствах? Я понимаю, как отправлять сообщения разным пользователям на разных устройствах с помощью GCM, но это кажется довольно запутанным.

  2. Как добиться этого в MQTT с адекватной безопасностью? Я прочитал все, что мог, о безопасности и пришел к выводу, что MQTT не отвечает за нее и что я должен реализовать свои собственные меры безопасности на уровне брокера. На данный момент брокер Mosquitto разрешает аутентификацию по имени пользователя/паролю, но для приложения, реализующего Oauth, имя пользователя/пароль кажется довольно уязвимым.

Или мне стоит перейти на XMPP?


person Hick    schedule 12.06.2013    source источник


Ответы (1)


Вы можете использовать новую функцию GCM Уведомления пользователей.

Что такое уведомления пользователей?

Сторонние серверы могут отправлять одно сообщение нескольким экземплярам приложения, работающего на устройствах, принадлежащих одному пользователю. Эта функция называется уведомлениями пользователей. Пользовательские уведомления позволяют каждому экземпляру приложения, которым владеет пользователь, отражать последнее состояние обмена сообщениями. Например:

  • Если сообщение было обработано на одном устройстве, сообщение GCM на других устройствах будет отклонено. Например, если пользователь обработал уведомление календаря на одном устройстве, уведомление исчезнет на других устройствах пользователя.
  • Если сообщение еще не доставлено на устройство, но оно было обработано, сервер GCM удаляет его из очереди неотправленных для других устройств.
  • Точно так же устройство может отправлять сообщения на notification_key, который является токеном, который GCM использует для рассылки уведомлений всем устройствам, чьи регистрационные идентификаторы связаны с ключом.
person Eran    schedule 12.06.2013
comment
+Эран Есть ли пример использования GCM User Notification + Java App Engine? - person Renan Franca; 21.10.2013