Моя архитектура будет использовать ActiveMQ на сервере, а клиенты Android будут отправлять и получать сообщения. Ситуация с сетью будет очень ненадежной; возможно, часы отсутствия соединения. Есть ли структура, которая позволит мне ставить сообщения в очередь на клиенте Android и надежно доставлять их после восстановления соединения?
Очередь сообщений от Android с учетом ненадежной сети
Ответы (1)
Вы можете эффективно реализовать его самостоятельно, я не думаю, что кто-то предоставит вам эту услугу, а если и предоставит, то обязательно возьмет плату. Вот что я могу предложить для оптимального решения.
Создайте базу данных с помощью SQLITE для хранения вашего сообщения, как только сообщение будет готово для доставки из клиента Android, вы можете выполнить следующее: Если сеть доступна, вы можете напрямую доставить сообщение на свой веб-клиент. b. Если сеть отсутствует, кэшируйте ее непосредственно в локальную базу данных Android.
Разработайте логику синхронизации, вы можете добиться этого с помощью сетевого прослушивателя, поэтому, когда пользовательское устройство возвращается в сеть, вы можете написать логику для запроса из базы данных и публикации на своем веб-клиенте, впоследствии удаляя локальные данные после успешной публикации на сервере.
Вы можете усилить свою логику, каждый раз кэшируя сообщение в локальную базу данных, а затем логику синхронизации, которая будет массово передавать ваши локальные изменения на веб-сервер, тем самым улучшая время обработки.
Надеюсь, это ответит на вашу проблему.