Очередь сообщений от Android с учетом ненадежной сети

Моя архитектура будет использовать ActiveMQ на сервере, а клиенты Android будут отправлять и получать сообщения. Ситуация с сетью будет очень ненадежной; возможно, часы отсутствия соединения. Есть ли структура, которая позволит мне ставить сообщения в очередь на клиенте Android и надежно доставлять их после восстановления соединения?


person Julian    schedule 06.12.2013    source источник


Ответы (1)


Вы можете эффективно реализовать его самостоятельно, я не думаю, что кто-то предоставит вам эту услугу, а если и предоставит, то обязательно возьмет плату. Вот что я могу предложить для оптимального решения.

  1. Создайте базу данных с помощью SQLITE для хранения вашего сообщения, как только сообщение будет готово для доставки из клиента Android, вы можете выполнить следующее: Если сеть доступна, вы можете напрямую доставить сообщение на свой веб-клиент. b. Если сеть отсутствует, кэшируйте ее непосредственно в локальную базу данных Android.

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

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

Надеюсь, это ответит на вашу проблему.

person Techfist    schedule 06.12.2013