Как я могу мгновенно обновлять счет как / не нравится в приложении для Android? - PullRequest
0 голосов
/ 01 мая 2018

Я python бэкэнд-разработчик. Я реализую Rest API для приложений Android. Это приложение позволяет пользователям нравится или не нравится на пост. Мой клиент, требующий немедленных обновлений, должен показывать значения «нравится» или «не нравится».

Одно из решений для этого . Любое приложение постоянно обращается к серверу за обновлениями, что является очень плохим решением. После некоторых исследований я нашел другое решение, которое использует WebSockets.

Подскажите, есть ли другое лучшее решение. Будет ли WebSockets работать нормально на уровне сервера и для нативного приложения для Android в терминах scalability?

Я очень ценю вашу помощь.

1 Ответ

0 голосов
/ 18 июня 2018

Попадание на серверы для обновления не является хорошим вариантом. Использование HTTP, AJAX-опроса или AJAX-длинного опроса существенно увеличивает нагрузку на сеть из-за большого количества циклов запроса / ответа. Вы должны пойти с веб-сокетами. С помощью WebSockets можно установить полный дуплекс и постоянное соединение между клиентом и сервером. Это означает, что в отличие от запроса и ответа, соединение остается открытым до тех пор, пока приложение работает, и, поскольку оно является полнодуплексным, возможна двусторонняя одновременная связь, т.е. теперь сервер способен инициировать связь и «проталкивать» некоторые данные для клиента. Но WebSockets не реализует Pub / Sub на уровне протокола. Вам понадобится реализовать его поверх протокола WebSockets, что довольно утомительно.

Вы можете использовать решение PaaS, такое как Ably , которое абстрагирует эту реализацию и позволяет вам использовать Pub / Саб как функция из коробки.

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

...